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

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