Avatar billede Mik2000 Professor
17. december 2019 - 21:31 Der er 4 kommentarer og
2 løsninger

Join med where og else null

Hej

Jeg har 3 tabeller

sider:
--------------
sideId
sideAktiv

siderSprog:
--------------
sispId
sispSideId
sispSprogId
sispNavn

sprog:
--------------
sproId
sproSprog

Nu vil jeg gerne hente fra sider og left joine siderSprog where sispSprogId = 5
Det kan jeg godt

SELECT * FROM sider LEFT JOIN siderSprog ON sideId = sispSideId WHERE sispSprogId = 5

Men hvis nu jeg vil gøre det samme og der ikke er nogle rækker med sispSprogId = 5 i siderSprog, så returnere den ingenting fordi sispSprogId ikke er lig 5.

Har prøvet
SELECT * FROM sider LEFT JOIN siderSprog ON sideId = sispSideId WHERE sispSprogId = 5 OR sispSprogId IS NULL
Men det virker heller ikke

Der vil jeg gerne have den til at returnere alt fra sider stadig og så bare NULL i siderSprog felterne
Kan man det?
Avatar billede arne_v Ekspert
18. december 2019 - 00:14 #1
SELECT * FROM sider LEFT JOIN siderSprog ON sideId = sispSideId AND sispSprogId = 5

maaske?
Avatar billede Mik2000 Professor
20. december 2019 - 18:39 #2
Kan man putte sådan en direkte i ON i en join
Troede kun det kunne bruges til at fortælle hvordan tabellerne hænger sammen

Tak :)
Avatar billede arne_v Ekspert
21. december 2019 - 02:00 #3
Det kan man godt. Og naar det er en LEFT JOIN saa virker det anderledes end hvis den ekstra betingelse er under WHERE.
Avatar billede Mik2000 Professor
21. december 2019 - 19:48 #4
Nice to know :)
Avatar billede Mik2000 Professor
21. december 2019 - 19:53 #5
Kan du give et ultra simpelt eksempel på hvad man vil gøre i PHP i så fald?
Avatar billede arne_v Ekspert
21. december 2019 - 20:04 #6
Gøre i PHP??

PHP koden er vel dem samme uanset SQL.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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