Problem mit einem Query
Problem mit einem Query
Hallo!
Ich brauch ein Query das daten abhändig voneinander aus 3 verschiedenen tabellen holt.
Ich will wissen, wieviele Alben es in der Kathegorie Geburtstage gibt und wieviele Bilder es in der Kathegorie Geburtstage gibt.
Tabellenaufbau:
gallery_cathegory:
id | cathegory
1 | Geburtstage
2 | Urlaube
gallery_albums:
id | album | date | cat_id
1 | Album1 | 1153612746 | 1
1 | Album2 | 1153612758 | 1
2 | Album3 | 1153612750 | 2
gallery_photos:
id | photo | thumbnail | description | date | album_id
1 | photo-1.jpg | photo-2.jpg | Beim Feiern | 1153612819 | 1
2 | photo-3.jpg | photo-4.jpg | Beim saufen 1153613488 | 1
3 | photo-6.jpg | photo-5.jpg | Beim saufen 1153613490 | 1
4 | photo-8.jpg | photo-7.jpg | Beim saufen 1153613495 | 2
Irgendwie bekomm ich das nicht auf die reihe. Kann mir jemand helfen?
Ich brauch ein Query das daten abhändig voneinander aus 3 verschiedenen tabellen holt.
Ich will wissen, wieviele Alben es in der Kathegorie Geburtstage gibt und wieviele Bilder es in der Kathegorie Geburtstage gibt.
Tabellenaufbau:
gallery_cathegory:
id | cathegory
1 | Geburtstage
2 | Urlaube
gallery_albums:
id | album | date | cat_id
1 | Album1 | 1153612746 | 1
1 | Album2 | 1153612758 | 1
2 | Album3 | 1153612750 | 2
gallery_photos:
id | photo | thumbnail | description | date | album_id
1 | photo-1.jpg | photo-2.jpg | Beim Feiern | 1153612819 | 1
2 | photo-3.jpg | photo-4.jpg | Beim saufen 1153613488 | 1
3 | photo-6.jpg | photo-5.jpg | Beim saufen 1153613490 | 1
4 | photo-8.jpg | photo-7.jpg | Beim saufen 1153613495 | 2
Irgendwie bekomm ich das nicht auf die reihe. Kann mir jemand helfen?
- S2B
- Ehemaliges Teammitglied
- Beiträge: 3258
- Registriert: 10.08.2004 22:48
- Wohnort: Aachen
- Kontaktdaten:
Das ist imho gar nicht so einfach, deswegen wird bei phpBB auch die forum_id bei jedem einzelnen Post gespeichert...
Ich bin bis jetzt nur auf folgende Lösung gekommen, vielleicht geht es auch einfacher, kA.
{CAT_ID} ist die ID deiner Kategorie.
Ich bin bis jetzt nur auf folgende Lösung gekommen, vielleicht geht es auch einfacher, kA.

Code: Alles auswählen
SELECT 'album_count' AS name, COUNT(a.id) AS count
FROM gallery_cathegory c
LEFT JOIN gallery_albums a
ON a.cat_id = c.id
WHERE c.id = {CAT_ID}
UNION
SELECT 'photo_count' AS name, COUNT(p.id) AS count
FROM gallery_albums a2
LEFT JOIN gallery_photos p
ON p.album_id = a2.id
WHERE a2.cat_id = {CAT_ID}
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Hallo!
Erstmal danke! Es funktioniert!
Jetzt muss nur noch der kathegoriename und die kathegorie id ausgelesen werden. Die ausgelesene kathegorie id soll dann anstatt {CAT_ID} stehen.
Ich will das ganze dann in ne schleife packen damit das alles ausgegeben werden kann.
Kannst du mir da nochmals helfen?
lg
fabse
Erstmal danke! Es funktioniert!

Jetzt muss nur noch der kathegoriename und die kathegorie id ausgelesen werden. Die ausgelesene kathegorie id soll dann anstatt {CAT_ID} stehen.
Ich will das ganze dann in ne schleife packen damit das alles ausgegeben werden kann.
Kannst du mir da nochmals helfen?
lg
fabse
- S2B
- Ehemaliges Teammitglied
- Beiträge: 3258
- Registriert: 10.08.2004 22:48
- Wohnort: Aachen
- Kontaktdaten:
Ehrlich gesagt würde ich das ganze dann in 2 Queries aufteilen, ist sowieso sinnvoller (oder wie schon oben erwähnt eine Spalte cat_id in der photos-Tabelle):
Code: Alles auswählen
SELECT c.id, c.cathegory, COUNT(a.id) AS album_count
FROM gallery_cathegory c
LEFT JOIN gallery_albums a
ON a.cat_id = c.id
Code: Alles auswählen
SELECT COUNT(p.id) AS photo_count
FROM gallery_albums a
LEFT JOIN gallery_photos p
ON p.album_id = a.id
WHERE a.cat_id = {CAT_ID}
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
- S2B
- Ehemaliges Teammitglied
- Beiträge: 3258
- Registriert: 10.08.2004 22:48
- Wohnort: Aachen
- Kontaktdaten:
Das erste Query gibt dir alle Kategorien und die Anzahl der Alben in der jeweiligen Kategorie zurück. Daraus machst du eine Schleife, in der du das zweite Query ausführst (und da hast du ja dann die ID der Kategorie
).

Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.