Group By og LEFT join mellem flere tabeller - Nu må jeg lære DET!
Hej alle sammen,Jeg har arbejdet ca. 1 år med webprogrammering og kommer derfor ind imellem til også at lave sql.
Nåh men til sagen:
Jeg er MEGET usikker på hvordan jeg skal bruge LEFT JOIN, når der er tale om JOIN mellem flere tabeller end bare to. Altså hvordan er syntaksen og hvilke overvejselser skal jeg gøre.
Group by, bliver den KUN brugt i forbindelse med Agg funktioner og opføre den sig forskellig i Mysql og Ms sql ?
Jeg fik af en bruger herinde lavet denne sqL:
SELECT kategori1.kategori1navn,COUNT(annoncer.annonceid) AS antal
FROM (kategori1 LEFT JOIN kategori2 ON kategori1.kat1id=kategori2.fkkat1id)
LEFT JOIN annoncer ON kategori2.kat2id=annoncer.fkkat2id
GROUP BY kategori1.kategori1navn
Denne sql Virker fint i Mysql, men den fejler i MS SQL. MS sql forlanger vist alle de felter som står i SELECT skal også skrives i GROUP By.....
-......
Som i kan se brugeren her har lavet LEJT JOIN mellem 3 tabeller sådan:
FROM (kategori1 LEFT JOIN kategori2 ON kategori1.kat1id=kategori2.fkkat1id)
LEFT JOIN annoncer ON kategori2.kat2id=annoncer.fkkat2id
Og Det virker, men hvis jeg skulle lave det så ville det have set sådan ud:
FROM
kategori1 LEFT JOIN kategori2 ON kategori1.kat1id=kategori2.fkkat1id
AND
kategori2 LEFT JOIN annoncer ON kategori2.kat2id=annoncer.fkkat2id
Hvorfor virker min måde at gøre på ikke ?
......