Moin Leute,
also leider ist mir kein pregnanterer Titel eingefallen, da das doch etwas komplizierter zu sein scheint, als ich dachte.
Also, im Prinzip geht es darum, dass ich 2 Tabellen habe. Eine namens "fach" mit dem Feld "fachName" und eine namens "entries" mit dem Feld "entryFach".
Nun möchte ich mit einem Query alle Datensätze aus "fach" haben, für die es in "entries" mindestens einen Datensatz gibt, in dem entryFach == fachName ist, und gleichzeitig auch die Datensätze in "entries" zählen, für die das gilt.
Das ganze habe ich so probiert ( Zend_Db ):
Das generiert folgendes Query:
Ich bekomme dann aber nur das letzte Fach aus der Liste, mit der Anzahl der Gesamteinträge.
Ich geb nochmal ein kleines Beispiel, wie ich das genau meine, dann wirds vermutlich etwas verständlicher:
in fach gibt es 3 Fächer:
Deutsch
Mathe
English
in entries gibts 2 Einträge:
1.) mit Fach Deutsch
2.) mit Fach Mathe
Mit meinem Query erhalte ich nur einen Datensatz:
Mathe ( 2 )
Es sollte aber sein:
Deutsch ( 1 )
Mathe ( 1)
Wäre nett, wenn mir da jemand auf die Sprünge helfen könnte. Danke.
Gruß,
Aza
also leider ist mir kein pregnanterer Titel eingefallen, da das doch etwas komplizierter zu sein scheint, als ich dachte.
Also, im Prinzip geht es darum, dass ich 2 Tabellen habe. Eine namens "fach" mit dem Feld "fachName" und eine namens "entries" mit dem Feld "entryFach".
Nun möchte ich mit einem Query alle Datensätze aus "fach" haben, für die es in "entries" mindestens einen Datensatz gibt, in dem entryFach == fachName ist, und gleichzeitig auch die Datensätze in "entries" zählen, für die das gilt.
Das ganze habe ich so probiert ( Zend_Db ):
PHP-Code:
$query = $db->select()->from(array('f' => 'faecher'),
array('fachName')
)
->join(
array('e' => 'entries'),
'f.fachName = e.entryFach',
array('entryCount' => 'COUNT(*)')
);
$allFaecher = $db->fetchAll($query);
SELECT
f.fachName, e.COUNT(*) as entryCount
FROM
fach AS f
JOIN
entries AS e
ON
f.fachName = e.entryFach
f.fachName, e.COUNT(*) as entryCount
FROM
fach AS f
JOIN
entries AS e
ON
f.fachName = e.entryFach
Ich geb nochmal ein kleines Beispiel, wie ich das genau meine, dann wirds vermutlich etwas verständlicher:
in fach gibt es 3 Fächer:
Deutsch
Mathe
English
in entries gibts 2 Einträge:
1.) mit Fach Deutsch
2.) mit Fach Mathe
Mit meinem Query erhalte ich nur einen Datensatz:
Mathe ( 2 )
Es sollte aber sein:
Deutsch ( 1 )
Mathe ( 1)
Wäre nett, wenn mir da jemand auf die Sprünge helfen könnte. Danke.
Gruß,
Aza
Kommentar