Philipp Hasenfratz: 2 tabellen überprüfen

Beitrag lesen

Halihallo Markus

das problem ist jetzt, es müsste beides in einen query, weil ich immer 10 pro seite zeige und den limit daher auf $start,10 setze... das gelingt mir mit meinem verständnis aber nicht bei 2 queries...

Stimmt. Wenn du nach wie vor die Daten aus den Gästebucheinträgen nicht brauchst, kannst
du folgenden Query benutzen:

SELECT
      u.*,
      COUNT(gb.ownerid) AS count
   FROM
      user AS u
      LEFT OUTER JOIN guestbook AS gb ON gb.ownerid=u.id
   ORDER BY count
   GROUP BY gb.ownerid
   LIMIT $start, 10

Damit erhälst du dann etwa folgendes:

id   name  count
   1 n1        3
   2 n2        2
   3 n3        0

ist es das, wonach du suchst?

Der LEFT OUTER JOIN (falls du den noch nicht kennst), brauchst du, um auch User
anzuzeigen, welche gar nicht mit der Guestbook-Tabelle gejoined werden können, da sie
gar keine Beiträge geschrieben haben. Alle Felder von Guestbook werden in dem Falle mit
NULL gefüllt, was bei einem COUNT(gb.ownerid) zu einer '0' führt (also keine Beiträge).

Viele Grüsse

Philipp