Avatar billede hkb-x Nybegynder
30. april 2009 - 13:32 Der er 5 kommentarer

problemer med join og tomme relationer

Jeg har en forespørgsel der kører over flere tabeller. I en af dem er det ikke altid sikkert der er noget data hver gang og jeg vil således gerne bare returnere null i de tilfælde men når jeg gør således:

select t1.a, t2.b, t3.c
from t1, t2, t3
where t1.x = t2.y and t2.z = t3.q

og der ikke er nogle rækker i t3 der opfylder t2.z = t3.q så bliver der kun taget de rækker der i t1 og t2 der macher noget i t3.

Hvordan kan jeg gøre så at jeg jeg får data fra t1 og t2 uanset hvad og kun data fra t3 hvis der er noget, ellers null?
Avatar billede Slettet bruger
30. april 2009 - 13:41 #1
kan du ikke bare lave en left join?
Avatar billede hkb-x Nybegynder
30. april 2009 - 13:56 #2
Det gør jeg allerede men så går den nærmest i selvsving ved det.
Avatar billede Slettet bruger
30. april 2009 - 14:15 #3
select t1.a, t2.b, t3.c
from t1, t2 left join t3 on t2.z = t3.q
where t1.x = t2.y

utestet, det er vist det jeg plejer at lave. Så kommer der bare nuller der hvor der ikke er data
Avatar billede hkb-x Nybegynder
30. april 2009 - 14:57 #4
ahh, jeg havde bare lige glemt at lave indexes på t3. nu virker det fint. kast svar hvis du vil have point.
Avatar billede Slettet bruger
30. april 2009 - 15:05 #5
hvilket kald endte du med at anvende?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester