Zwei Fragen zu Klassen und SQL.

mAu

Erfahrenes Mitglied
Hi!

Ich hab heut ma zwei Fragen!

Nr.1:
Da ich mich in letzter Zeit den WBB Code zu gemüte führe, stoße ich in dessen mySql Querys oft auf diesen Ausdruck:

PHP:
$result = $db_zugriff->query("SELECT objectid,username FROM bb".$n."_object2board LEFT JOIN bb".$n."_user_table ON bb".$n."_user_table.userid=bb".$n."_object2board.objectid WHERE boardid = '$id' AND mod = 1");

Da würd ich gern mal wissen, wofürt LEFT JOIN steht.

Nr.2:
Wo finde ich ein gutes Tutorial über Klassen?

mfg mAu
 
zu 1) http://www.mysql.com/doc/de/JOIN.html - Mehr kann ich dir leider nicht anbieten, da ichs selber nicht so ganz verstehe, aber es hat in dem Sinne etwas mit Subqueries zu tun.

zu 2) Schau dich mal nach einführungen in Objektorientierte Programmierung um. Kurform lautet OOP. Wenn du nach OOP PHP Einführung in Google suchst, solltest du einiges finden.
 
LEFT JOIN bedeutet die Verknüpfung zweier Tabellen. Die Besonderheit eines LEFT JOINs gegenüber einem Full Join (also der vollständigen Verknüpfung zweier Tabellen) ist die, dass beim LEFT JOIN die gesamte linke Tabelle gelesen wird, dann die Rechte. Wenn auf der rechten Seite Werte fehlen, werden sie mit Null aufgefüllt .... Das bedeutet dass du in der Tabelle auf der Rechten Seite nicht unbedingt für jeden Eintrag in der linken Tabelle ein Gegenstück haben musst.

Manchmal ist das wichtig, wenn du zum Beispiel ein Forum hast, wo Thread und Post in verschiedenen Tabellen gespeichert werden. thread LEFT JOIN post würde dann auch die Threads liefern, die keine Posts enthalten....

Dummes Beispiel, aber ich hoffe es war verständlich.

Ciao, Jörg
 
Code:
SELECT * FROM Tabelle1 LEFT JOIN Tabelle2 ON Feld.Tabelle2 = Feld.Tabelle1

Das ist ein sogenannter Outer-Join.
Dabei werden bei einer Abfrage auch die Daten aus der Tabelle2 angezeigt, die keinen verknüpften Datensatz der Tabelle1 beinhalten. Das ist die genormte SQL-Syntax.

Oracle hat es meiner Meinung nach besser gelöst. Da schreibt man einfach:
Code:
SELECT * FROM Tabelle1, Tabelle2
WHERE Feld.Tabelle1 = Feld.Tabelle2(+)

mfg, snuu
 
Ich wollte eigentlich nur ein verstektes Kompliment an Tim geben, mehr nicht!

Aber wenn mitlerweile sogar das verboten ist, na gut :sad:
 
Zurück