Anfängerfrage zu einem JOIN

Hallo wissende,

bin gerade dabei mit etwas intensiver mit mySQL zu beschäftigen, bekomme das aber mit dem JOIN noch nicht so richtig auf die Reihe. Wollte das an einem kleinen Beispiel mal probieren, erhalte aber immer einen Fehler. Vieleicht kann mir jemand sagen wo ich meinen Fehler habe.

Die beiden Datenbanken:

Personen
id
name

Teilnehmer
id

Ich habe ein paar Personen mit fortlaufender ID angelegt und in Teilnehmer halt ein paar ID’s eingetragen. Jetzt möchte ich die Namen der Teilnehmer ausgeben.

mein Select:

SELECT T.id, P.name
FROM teilnehmer AS T
INNER JOIN personen AS P ON t.id = p.id

Was ist denn falsch?

Vielen Dank schonmal.

Gruß,
Daniel.

Es wäre mit neu, dass MySQL JOIN kennt.

In Oracle würde dieser Join so aussehen:

SELECT t.id, p.name
FROM teilnehmer t, personen p
WHERE t.id = p.id

/stefan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

bin gerade dabei mit etwas intensiver mit mySQL zu
beschäftigen, bekomme das aber mit dem JOIN noch nicht so
richtig auf die Reihe. Wollte das an einem kleinen Beispiel
mal probieren, erhalte aber immer einen Fehler. Vieleicht kann
mir jemand sagen wo ich meinen Fehler habe.

Zunächst wäre es sinnvoll, die Fehlermeldung zu erfahren.

SELECT T.id, P.name
FROM teilnehmer AS T
INNER JOIN personen AS P ON t.id = p.id

Dazu zwei Dinge aus dem MySQL-Handbuch (http://www.mysql.com/doc/en/JOIN.html):

INNER JOIN and , (comma) are semantically equivalent. Both do a full join between the tables used. Normally, you specify how the tables should be linked in the WHERE condition.

Sprich: Du brauchst kein INNER JOIN, sondern kannst es auch so formulieren:

SELECT T.id, P.name
 FROM teilnehmer AS T, personen AS P 
 WHERE t.id = p.id

Was ist denn falsch?

Der Inner Join sollte aber auch funktionieren, da kommt folgender Spruch wohl zum Tragen:

Note that in versions before Version 3.23.17, the INNER JOIN didn’t take a join_condition
Welche Version verwendest Du?

Gruß

J.

Hi Jose,

tatsächlich… ersetze ich das INNER JOIN durch ein Komma funktioniert es plötzlich. Auf dem Server ist die Version 3.22.32 installiert. Daher scheint es wohl nicht zu funkionieren.

Die Fehlermeldung lautete übrigens:
You have an error in your SQL syntax near ‚INNER JOIN personen AS P ON t.id = p.id‘

Vielen Dank für die Aufklärung.

Gruß,
Daniel.