Siechfred: Query und count()

Beitrag lesen

Hallo, vielen Dank für den Tipp. Funktioniert leider gerade mir LEFT OUTER JOIN bzw. RIGHT OUTER JOIN nicht.

Doch, du musst es nur richtigrum anpacken.

Usertabelle:
UseriID Name Wohnort
1 Peter Berlin
2 Udo  Stuttgart
3 Ida  Frankfurt
4 Robert Mainz
5 Paul Hamburg
[...]
Flirttabelle:
UserID FlirtID
1  3
2  3
3  4

Soweit klar.

Nun will ich mit der Query oberprüfen, ob in der Flirttabelle ein Treffer gelanden wird. Falls "nicht", dann soll er der Userid jedoch den Usernamen ausprucken, sprich:

Du willst also wissen, welche User wieviele Flirtkontakte haben?

select count(A.userid), B.username from jf_flirttabelle AS A LEFT OUTER JOIN jf_usertabelle AS B ON A.userid=B.userid where userid=1 and friendid=3 GROUP BY userid, username ;

Der LEFT JOIN bringt dir alle Ergebnisse der linken - also der Flirttabelle - kombiniert mit den Ergebnissen der Usertabelle. Du willst doch aber alle User haben, auch wenn sie noch keinen Kontakt haben, oder? Dann müsste das so funktionieren:

SELECT  
  usertabelle.userid  
  name,  
  COUNT(flirttabelle.FlirtID) AS Kontakte  
FROM  
  usertabelle  
LEFT JOIN  
  flirttabelle  
ON  
  usertabelle.userid = flirttabelle.userid  
GROUP BY  
  usertabelle.userid

Das ergibt für alle User aus der Usertabelle die Anzahl der Einträge in der Flirttabelle, also mit wievielen anderen Usern derjenige momentan verbandelt ist. Sind keine Einträge vorhanden, gibt's 0. Wenn's das auch nicht ist, verstehe ich ehrlich gesagt nicht, was du da genau abfragen willst.

Siechfred

--
Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.