Probleme mit JOIN

E

encom

Hallo, ich habe eine DB-Tabelle menu mit id, kat_id, name
und eine DB-Tabelle inhalte mit id, kat_id, titel, text

kat_id in der Tabelle inhalte sind einer id der Tabelle menu zugeordnet.

jetzt habe ich z.B. 3 Einträge mit der id 17 in der Tabelle inhalte.

Nun will ich alle namen aus der Tabelle menu auslesen (was auch klappt) und gleichzeitig will ich die anzahl der zum jeweiligen Namen zugehörigen titel ausgeben.

Also es sollte so aussehen

Code:
17 menu1 (3)
2   menu4 (6)
13 menu2 (1)
--------------
17 = id aus db-tabelle menu
menu1 = name aus DB-Tabelle menu
(3) Anzahl der Einträge mit der kat_id 17 aus db-tabelle inhalte
Wie mach ich das?


Danke
 
Wir bauen uns ein Join (kurztut)

>kat_id in der Tabelle inhalte sind einer id der Tabelle menu zugeordnet.

Die Tabellen werden mit on verbunden wobei der Tabellennummer mit angegeben werden muss

ON inhalt.kat_id = menu_id

>Nun will ich alle namen aus der Tabelle menu auslesen (was auch klappt) und gleichzeitig will ich >die anzahl der zum jeweiligen Namen zugehörigen titel ausgeben.

da braucht es ein Zählbefeht auch Count genannt
da alles aus der menu tabelle angezeigt werden soll wird es ein LEFT JOIN

SELECT menu.id,menu.name,count(inhalte.id) AS menge from menu LEFT JOIN inhalt ON inhalt.kat_id = menu_id GROUP BY menu.id

das group by gibt an welche Zeilen zusammengezählt werden soll vom count
mit as geben wir dem countergebnis ein feldnamen (damit können wir auch mysql_fetch_array
einsetzen :)
 
Zuletzt bearbeitet:
Zurück