Einzelnen Beitrag anzeigen
  #4  
Alt 30.11.2002, 11:39:36
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
hi
also:

left join verbindet zwei tabellen und macht sie zu einer virtuellen gemeinsamen tabelle. das on blabla=blabla sagt aus, über was die beiden Tabellen miteinander verbunden gehören. In dem fall ist es so, dass tabelle newssystem die User ID eines Users gespeichert hat. mit left join user on newssystem.user_ID=user.USER_ID sage ich ihm, dass das zusammengehört, wo die user_ID aus newssystem gleich ist, wie die USER_ID aus user.

ich schreibe beispielsweise newssystem.user_ID damit mySQL weiss, aus welcher ursprünglichen Tabelle die Spalte kommt, die ich haben will, weil es könnte ja auch sein, dass in beiden tabellen eine gleichnamige Spalte vorkommt (und das tut es ja auch mit USER_ID bzw. user_ID)

die ganze query nochmal

select newssystem.titel, newssystem.content, newssystem.created, user.username, user.email from newssystem left join user on newssystem.user_ID=user.USER_ID

sagt also aus: Nimm die Tabelle newssystem und verbinde sie mit der tabelle user (left join user nicht users ich hab mich in meinem ersten beitrag verschrieben!) und zwar so, dass zu jedem eintrag aus der tabelle newssystem Eintrag aus der Tabelle user gehört, bei dem das Feld USER_ID gleich ist, wie das Feld user_ID aus der anderen tabelle. Dann gib mir die felder:
aus der ehemaligen newssystem tabelle das feld titel, content und created und aus der ehemaligen user tabelle das feld username und email.

left join sagt aus, dass das die ursprüngliche tabelle (also in diesem fall newssystem -> "From newssystem") auf der Linken seite der gesamttabelle steht. Das macht einen riesen unterschied, weil wenn sie nämlich auf der rechten stehen würde -> "right join" hättest du die auflistung aller benutzernamen mit e-mail adresse und einen, dazu passenden news eintrag. und das wäre nicht sehr effektiv...

mehr über mySQL findest du unter www.little-idiot.de/mysql/
über joins im allgemeinen: http://www.little-idiot.de/mysql/mysql-52.html

wenn du noch fragen hast, stell sie einfach ;)
Mit Zitat antworten