Avatar billede yezper Nybegynder
04. oktober 2010 - 22:24 Der er 2 kommentarer og
1 løsning

JOIN problemer

Hej alle.

Jeg har en SQL-query:

SELECT
    fav.target_id, p.base_profile_name AS profile_name, p.base_profile_picture_file,
    media.media_file, media.media_ext
FROM rel_favourites fav
INNER JOIN profiles_list p ON fav.target_id = p.profile_id
INNER JOIN galleries_media media ON p.base_profile_picture_file = media.media_id
WHERE fav.owner_id = 97 AND fav.dtm_delete IS NULL
ORDER BY profile_name ASC;


(kan ses med syntax highlighting på http://pastie.org/1199256)

Min query giver det forventede resultat, sålænge p.base_profile_picture_file har en værdi, som kan findes i tabellen galleries_media.

Men ændres værdien af p.base_profile_picture_file til 0 (=brugeren har ikke et profilbillede - og dette findes naturligvis ikke i galleries_media,) får jeg et tomt resultat tilbage.

Det er sikkert helt korrekt. Databasen ved jo ikke, hvad den skal fortælle mig nogen værdier til media.media_file og media.media_ext.

Men - jeg har brug for at få samme resultatsæt som hvis der _var_ en eksisterende værdi i p.base_profile_picture_file - media.media_file og media.media_ext skal så blot være NULL.

Er der nogen som kan hjælpe?
I må lige sige til, hvis det kræver lidt mere forklaring.
Avatar billede arne_v Ekspert
04. oktober 2010 - 23:01 #1
Prøv:

...
FROM rel_favourites fav
INNER JOIN profiles_list p ON fav.target_id = p.profile_id
LEFT JOIN galleries_media media ON p.base_profile_picture_file = media.media_id
...
Avatar billede yezper Nybegynder
05. oktober 2010 - 15:46 #2
Dét virkede - tak for det!
Hvis du lægger et svar, får du prompte dine point :-)
Avatar billede arne_v Ekspert
05. oktober 2010 - 16:11 #3
svar
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