Avatar billede kroning Nybegynder
24. august 2003 - 13:53 Der er 5 kommentarer og
1 løsning

Select sql

Hej

Jeg har 3 tabeller (mysql database) som bla. indeholder:

boger:
kategori - int
forfatter - int
forlag - int
Titel - str

forfatter:
Idnr - int
Navn - str

forlag:
Innr - int
Navn - str

Jeg kører så følgende sql

SELECT * FROM boger,forfatter f,forlag
WHERE boger.forfatter = f.idnr
AND boger.forlag = forlag.idnr
AND Kategori=3 ORDER BY f.Navn

Virker også fint, jeg får alle record hvor Kategori=3 og jeg har forfatter navn og forlag navn i de enkelte records.

Problemet er så hvis f.eks. boger.forlag har en værdi der ikke findes i forlag tabellen, når dette sker vil jeg gerne have en record alligevel men så bare med forlag.navn og forlag.Idnr uden værdi.

Mvh
HK
Avatar billede arne_v Ekspert
24. august 2003 - 13:58 #1
SELECT *
FROM (boger JOIN forfatter f ON boger.forfatter = f.idnr) LEFT JOIN forlag ON boger.forlag = forlag.idnr
WHERE Kategori=3
ORDER BY f.Navn
Avatar billede kroning Nybegynder
24. august 2003 - 14:11 #2
Jeg får følgende fejl:
#1064 - You have an error in your SQL syntax near 'ON boger.forfatter = .idnr )
LEFT  JOIN forlag ON boger.forlag = forlag.idnr WH' at line 3
Avatar billede arne_v Ekspert
24. august 2003 - 14:15 #3
Er der faldet et f ud i:
  boger.forfatter = .idnr
?
Avatar billede kroning Nybegynder
24. august 2003 - 14:15 #4
Ok, der manglede vist bare en LEFT
Avatar billede kroning Nybegynder
24. august 2003 - 14:17 #5
nej det manglende f er jeg kommet til at slette da jeg kopierede fejl teksten
Avatar billede kroning Nybegynder
24. august 2003 - 14:33 #6
Der manglede åbenbart en LEFT før den første JOIN Jeg bruger nu:
SELECT *
FROM (boger LEFT JOIN forfatter f ON boger.forfatter = f.idnr) LEFT JOIN forlag ON boger.forlag = forlag.idnr
WHERE Kategori=3
ORDER BY f.Navn

det virker ganske fint.
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