Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] DB: LEFT JOIN funktioniert nicht (https://www.gegen-bilderklau.net/thread.php?threadid=148533)


Geschrieben von cll am 12.01.2009 um 09:24:

  DB: LEFT JOIN funktioniert nicht

ich habe 776 User, 252 davon haben bereits Bilder geliehen. Ich will in der Userliste einblenden wer wie viel. Aber seitdem werden nur noch die User angezeigt, die etwas geliehen haben.

Eigentlich sollte es doch per LEFT JOIN gehen?!

$result = mysql_query("SELECT count(a.id) AS angefragt, u.id, u.name, [...] FROM user u LEFT JOIN anfragen a on u.id=a.anfid GROUP BY a.anfid $krit LIMIT $anf, 50");

Warum werden mir trotzdem die gleichen Ergebnisse angezeigt wie beim normalen JOIN?



Geschrieben von cll am 12.01.2009 um 21:34:

 

Dein Code sieht für mich sehr seltsam aus. beim count steht nicht, bei welcher Tabelle er was zählen soll, beim join ist kein ON und das USING kenne ich bisher gar nicht!

Außerdem steht bei dir Leihgaben links und LEFT JOIN, also müsste es dir doch alle Leihgaben ausgeben, aber nur die User, die etwas gegeben haben, oder nicht?



Geschrieben von cll am 13.01.2009 um 06:46:

 

ok, dann hab ichs richtig verstanden.
Bei meiner Abfrage steht ja aber user links, aber trotzdem bekomme ich nicht alle User, sondern nur die, die etwas angefragt haben unglücklich



Geschrieben von cll am 13.01.2009 um 09:25:

 

wofür ist hier das USING(user_id)?
Ich schätze doch mal das ist das gleiche wie bei mir on user.name=anfragen.anfrager
ist user_id bei dir ein Fremdschlüssel, der in beiden Tabellen vorkommt? sowas hab ich zwar nicht, aber dafür hab ich ja die on-Klausel

Dann müsste meine Abfrage nämlich richtig sein! sie geht aber nicht so wie sie soll...

ich werds nachher mal mit right join versuchen, was er mir dann anzeigt!



Geschrieben von cll am 13.01.2009 um 12:17:

 

du hast deinen foreign_key user_id genommen und ich ebenfalls die Userid, bei mir heißt sie bloß in der Anfragentabelle anders

EDIT: hey, du hast echt Recht gehabt! Ich hab das ORDER BY auf die ID der user-Tabelle geändert und es geht! Ich dachte immer man muss in der selben Tabelle ein ORDER BY anwenden, in der man count() oder sum() anwendet. Jetzt bin ich eines besseren belehrt. Danke!


Forensoftware: Burning Board, entwickelt von WoltLab GmbH