Hallo,
da ich gerade dabei bin meine Queries etwas zu optimieren bzw die Anzahl zu verringern habe ich mal wieder ein Problem.
Ich habe eine Tabelle mit Autos, auf der Seite wo ich das Auto anzeige möchte ich nicht nur die Autodaten auslesen sondern gleichzeitig auch die entsprechenden Userdaten und die Anzahl der Kommentare und die Anzahl der Bilder.
User, Kommentare, Bilder sind alles eigene Tabellen über die ids verknüpft. Es klappt soweit alles, auch die Anzahl der Kommentare kann ich auslesen aber ich würde nun auch gerne die Anzahl der Bilder haben was im Prinzip dasselbe ist wie bei den Kommentaren, nur nen zweiter Join bringt da irgendwie nicht das gewünschte Ergebnis.
Hier mein Query der funktioniert, wo aber die Bilderanzahl noch fehlt.
ein Kollege meinte nun der inner join wäre auch überflüssig und ich soll das unter where mit der verknüpfung machen, habe aber gelesen das das langsamer ist, weiss da jemand was ?
da ich gerade dabei bin meine Queries etwas zu optimieren bzw die Anzahl zu verringern habe ich mal wieder ein Problem.
Ich habe eine Tabelle mit Autos, auf der Seite wo ich das Auto anzeige möchte ich nicht nur die Autodaten auslesen sondern gleichzeitig auch die entsprechenden Userdaten und die Anzahl der Kommentare und die Anzahl der Bilder.
User, Kommentare, Bilder sind alles eigene Tabellen über die ids verknüpft. Es klappt soweit alles, auch die Anzahl der Kommentare kann ich auslesen aber ich würde nun auch gerne die Anzahl der Bilder haben was im Prinzip dasselbe ist wie bei den Kommentaren, nur nen zweiter Join bringt da irgendwie nicht das gewünschte Ergebnis.
Hier mein Query der funktioniert, wo aber die Bilderanzahl noch fehlt.
PHP-Code:
#Autodaten auslesen
$this->sql->dosql("SELECT
cars.id,
cars.marke,
cars.bezeichnung,
cars.ps,
cars.bj,
cars.kmh,
cars.nm,
cars.cm,
cars.s,
cars.euro,
cars.beschreibung,
cars.picture,
cars.views,
cars.t_stamp,
user.id AS uid,
user.nick,
user.posts,
user.points,
user.avatar,
carvote.votes,
carvote.wert,
COUNT(car_comments.id) as anzcomments
FROM
cars,carvote
INNER JOIN
user
ON
cars.uid = user.id
LEFT OUTER JOIN
car_comments
ON
cars.id = car_comments.cid
WHERE
cars.id = '".$this->arg['id']."'
AND
cars.active = '1'
AND
cars.voting = 'true'
AND
cars.id = carvote.id
GROUP BY
cars.id");
Kommentar