Gå til innhold

SQL-spørring fra flere tabeller


Anbefalte innlegg

Skrevet (endret)

Har 3 tabeller som ser slik ut:

Personer: persID, navn, tlf

Kalender: kalID, hendelse, tid

Kal_pers: relID, kalID, persID

 

Jeg ønsker å liste ut noe slikt:

Ola Normann - 5 hendelser

Kari Normann - 2 hendelser

 

Altså hvor mange "hendelser" i kalenderen hver person er knyttet til.

Kal_pers kan f.eks se slik ut:

1|1|1

2|1|2

3|2|1

 

Altså er persID 1 og 2 tilknyttet kalID og persID 1 er også tilknyttet kalID 2.

 

Kan jeg få til dette med en spørring, eller må jeg hente ut alle persID fra "personer" først, for deretter loope igjennom alle resultater og ta en count-spørring på "kal_pers" med samme persID?

 

Håper dette var forståelig? :p

Endret av ZoRaC
Videoannonse
Annonse
Gjest Slettet+142
Skrevet (endret)

Select p.navn AS navn, count(*) AS hendelser FROM kal_pers kp INNER JOIN personer p ON kp.persID=p.persID INNER JOIN kalender k ON kp.kalID=k.kalID GROUP BY p.persID

 

Noe slikt? :confused:

Endret av Slettet+142
Skrevet

Flott, takk! :D

Er det mulig å endre den slik at den også skriver "Petter - 0"?

(altså at den tar med de personene som ikke er knyttet til en hendelse?)

Gjest Slettet+142
Skrevet

Da må du nok be til høyere makter enn meg iallefall :p

Skrevet

Fikk det til! :woot:

 

SELECT ezusermanager.id, ezusermanager.firstname, ezusermanager.lastname, count(kalender_pers.kalID) AS antall 
		FROM ezusermanager LEFT JOIN kalender_pers ON ezusermanager.id=kalender_pers.persID
		GROUP BY ezusermanager.id
		ORDER BY antall DESC

Skrevet

Hvis du vil ha litt mindre å skrive kan du legge ett alias på tabellen(e) slik

SELECT e.id, e.firstname, e.lastname, count(k.kalID) AS antall 
FROM ezusermanager e LEFT JOIN kalender_pers k ON e.id=k.persID
GROUP BY e.id
ORDER BY antall DESC

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...