Thomas Luethi: -> (MySQL) -> Inner, outter, left, right join || welches ist es?

Beitrag lesen

Hallo,

Komme ich dann mit dem hier absolut zu 100 % durch,

Ja.
(Einfach genug?)

SELECT m.sorten FROM marmelade m, kunden k WHERE m.id = k.id AND k.kunden LIKE 'K%';
Gibt es irgendeinen Grund bei diesem Fall etwas anderes
als meinen Syntax zu nehmen?

Ich sehe nicht ein, warum Du (in diesem einfachen Fall)
"Alias-Namen" fuer die Tabellennamen nimmst.
Ich wuerde es einfach so schreiben:

SELECT marmelade.sorten FROM marmelade, kunden WHERE marmelade.id = kunden.id AND kunden.kunden LIKE 'K%';

Obwohl ich Dein Datenbank-Schema nicht kenne,
denke ich, dass es nicht sehr sinnvoll ist,
wenn die Spalte "id" in der Tabelle marmelade
ein Fremdschluessel (foreign key) ist, der
mit der Spalte "id" in der Tabelle kunden korreliert.
Mit anderen Worten: marmelade.id = kunden.id deutet
darauf hin, dass Du etwas seltsame Spaltennamen hast.

"Ueblicherweise" ist "id" die erste Spalte einer Tabelle,
Integer, auto_increment, Unique und Primary Key.

Aber was soll's - war ja vermutlich bloss ein Beispiel aus dem hohlen Bauch.

Und was wenn ich 3 Tables verbinden will?

Genau das gleiche.

Nach FROM duerfen beliebig viele Tabellennamen stehen.
Mit der Zeit wird die Sache wohl etwas langsam, das ist alles;-)

SELECT marmelade.sorten, lieblingssachen.farbe FROM marmelade, lieblingssachen, kunden WHERE marmelade.kundenid = kunden.id AND lieblingssachen.kundenid=kunden.id AND kunden.kunden LIKE 'K%';

(ungetestet! ;-)

Gruesse,

Thomas