Hallo,
ich soll für ne Präsentation eine einfache Seite aufbauen und entschied mich für das Zend Framework 2 und DoctrineORM, um mich dabei etwas weiter zu bilden. Nun hänge ich aber bereits an einer Kleinigkeit fest.
Ich habe Entities für Kontinente, Länder und Fabriken, die die Tabellen 1 zu 1 abbilden. Die Tabellen sind wie folgt aufgebaut:
Nun möchte ich gerne mit einer Abfrage wissen, wie viele Länder und Fabriken ein Kontinent besitzt und kriege das nicht hin.
Das Problem ist, dass bei dem Join das "ON c.id = f.country_id" fehlt. Wenn ich das aber hinschreibe, bekomme ich eine Fehler Meldung beim "ON".
Kann mir vielleicht jemand sagen, wie ich das Statement ergänzen müsste, um den JOIN vernünftig umzusetzen.
Es wäre auch super, wenn mir jemand sagen könnte, wo ich mich in das Thema einarbeiten kann.
Gruß, Tommy
ich soll für ne Präsentation eine einfache Seite aufbauen und entschied mich für das Zend Framework 2 und DoctrineORM, um mich dabei etwas weiter zu bilden. Nun hänge ich aber bereits an einer Kleinigkeit fest.
Ich habe Entities für Kontinente, Länder und Fabriken, die die Tabellen 1 zu 1 abbilden. Die Tabellen sind wie folgt aufgebaut:
Code:
continent:
id, name
country:
id, name, continent_id
factory:
id, name, continent_id, country_id
Nun möchte ich gerne mit einer Abfrage wissen, wie viele Länder und Fabriken ein Kontinent besitzt und kriege das nicht hin.
SQL:
$query = $this->getEntityManager()->createQuery('SELECT
c.id,
c.name,
COUNT(f.id) AS count
FROM
Mapsearch\Entity\Country c
LEFT OUTER JOIN
Mapsearch\Entity\Factory f
WHERE
c.continent_id = :id
GROUP BY
c.id,
c.name
ORDER BY
c.name');
$query->setParameter('id', $id);
$countries = $query->getResult();
Das Problem ist, dass bei dem Join das "ON c.id = f.country_id" fehlt. Wenn ich das aber hinschreibe, bekomme ich eine Fehler Meldung beim "ON".
Kann mir vielleicht jemand sagen, wie ich das Statement ergänzen müsste, um den JOIN vernünftig umzusetzen.
Es wäre auch super, wenn mir jemand sagen könnte, wo ich mich in das Thema einarbeiten kann.
Gruß, Tommy
Zuletzt bearbeitet von einem Moderator: