Avatar billede netkoen Nybegynder
26. august 2008 - 10:50 Der er 3 kommentarer og
1 løsning

GROUP BY - Mangler rækker

Jeg har følgende SQL sætning. Denne sætning bruges til en mindre applikation der holder styr på deltagere i møder.

SELECT m. *, sum( p.size ) AS size FROM info_meeting m, info_people p WHERE m.id =1 AND p.meeting_id = 1 GROUP BY m.name 

Sætningen virker sådan set fint nok, dog med det problem at når et "møde" ikke har nogen "deltagere" returnere SQL sætningen ingen rækker.

Hvordan kommer jeg lige uden om det problem?

Hilsen Daniel
Avatar billede erikjacobsen Ekspert
26. august 2008 - 11:47 #1
Du skal sikkert kigge på LEFT JOIN
Avatar billede langthjem Nybegynder
26. august 2008 - 11:51 #2
Som jeg ser det laver du egentlig en inner join på to tabeller. Derfor kræves det at der returneres data fra begge tabeller for at du får et recordset.
Du skal prøve at omskrive din sætning til at bruge en "left join" udfra din info_meeting tabel. Den skal se ud nogenlunde sådan:

SELECT info_meeting.*,sum(info_people.size) AS size FROM info_meeting LEFT JOIN info_people ON (info_people.meeting_id = info_meeting.id) WHERE (info_meeting.id = 1) GROUP BY info_meeting.name
Avatar billede netkoen Nybegynder
26. august 2008 - 12:03 #3
Det virker bare perfekt.. Jeg aldrig rigtig lært det der JOIN, så mange tak for hjælpen. Må hellere kigge lidt nærmere på det.

Langthjem - Skriv dit svar så får du dine point!
Avatar billede langthjem Nybegynder
26. august 2008 - 12:49 #4
Her har du så dit 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