Kann das ein Join lösen?

Fanatico

Mitglied
Hallo!

Da ich mit Joins net wirklich gut umgehen kann, muß ich mein Problem mal wieder hier schildern.

Ich habe folgende Tabelle mitteilungen:

id int
von String
an int
text text
gelesen int

So, gelesen kann 0 für ungelesen oder 1 für gelesen sein.

Ich hätte gerne am Ende für den User x, der z.B. ne 1 bei an stehen hat, dass für ihn folgendes ausgegeben wird.

Von ungelesene gelesenene
UserA 0 2
UserB 2 1
UserC 1 1


Doch genau da hängts bei mir, da ich absolut net weiß,w ie ich das Problem angehe.

Wäre nett, wenn mir da jemand weiterhelfen könnte.
 
Ja, das sollte sich mit einem JOIN und einer Reihe weiterer Funktionen lösen lasse.
Hier nur ein grobes Beispiel, wie es funktionieren könnte:
Code:
SELECT
  user.id,
  user.name,
  SUM(mitteilungen.gelesen) AS gelesen,  
  COUNT(mitteilungen.gelesen) - SUM(mitteilungen.gelesen) AS ungelesen
FROM user
LEFT JOIN mitteilungen
  ON user.id = mitteilungen.an
GROUP BY user.id
ORDER BY user.name
Bei der Summer müsste man ggf. mit IF überprüfen, ob NULL herauskommt und in dem Fall 0 zurückgeben.

Gruß hpvw
 
Zurück