MySQL - 2 Tabellen verbinden (JOIN) - aber nur bestimmte Inhalte
DonStefano
- datenbank
0 Rouven
Hallo zusammen,
ich habe ein Problem mit dem "Join-Befehl" in MySQl.
Ich habe 2 Tabellen, die über eine ID miteinander in Bezug stehen. Diese möchte ich miteinander verbinden, da ich in PhpMyAdmin Daten aus beiden Tabellen in einer Tabelle benötige um diese zu exportieren.
Soweit kein Problem: Im SQL-Prompt verbinde ich die beiden Tabellen folgendermaßen:
+++++++++++++++++++++++++++++++++
SELECT *,t1.userid,t2.userid
FROM tabelle1 t1 INNER JOIN tabelle2 t2
USING (userid)
+++++++++++++++++++++++++++++++++
Somit habe ich ALLE Datensätze der beiden Tabellen in einer Ausgabe. Das ist aber nicht das, was ich brauche.
Ich möchte NUR diejenigen Daten aus Tabelle2 mit Tabelle1 verknüpfen, die in Tabelle2 in einer bestimmten Spalte (spalteX) den Wert 1,2,3 oder 4 haben.
Das habe ich nun u.a. folgendermaßen versucht:
++++++++++++++++++++++++++++++++++++++++
SELECT *,t1.userid,t2.userid
FROM tabelle1 t1 INNER JOIN tabelle2 t2
WHERE t2.spalteX = 1
OR t2.spalteX = 2
OR t2.spalteX = 3
OR t2.spalteX = 4
USING (besitzerid)
++++++++++++++++++++++++++++++++++++++++
Das verursacht aber (wie viele meiner anderen Versuche) Fehlermeldungen, die ich euch erspare, da (hoffentlich) jemand auch so erkennt, was ich da falsch mache...
Für Hilfe wäre ich euch sehr verbunden, da ich es einfach nicht hinbekomme.
Vielen Dank!
Don
Hello,
++++++++++++++++++++++++++++++++++++++++
SELECT *,t1.userid,t2.userid
FROM tabelle1 t1 INNER JOIN tabelle2 t2
WHERE t2.spalteX = 1
OR t2.spalteX = 2
OR t2.spalteX = 3
OR t2.spalteX = 4
USING (besitzerid)
++++++++++++++++++++++++++++++++++++++++
Du vermischst hier zwei Sachverhalte: Syntaktisch hast du 1x den Join, der aus JOIN und Kriterium (hier: USING) besteht, zweitens hast du eine Reihe von WHERE-Beschränkungen.
Dein syntaktischer Fehler liegt darin, dass du das WHERE mitten in den Join gezwängt hast. Es gibt mal mindestens 3 Auswege:
MfG
Rouven