Rouven: MySQL - 2 Tabellen verbinden (JOIN) - aber nur bestimmte Inhalte

Beitrag lesen

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:

  1. Lass den Join unangetastet, füge das WHERE am Ende ein: FROM x JOIN y USING...WHERE...
  2. Führe ein Subselect aus FROM x JOIN (SELECT ... FROM  y WHERE) y_neu USING
  3. Verzichte auf USING, nutze ON und verlagere die Kriterien dahin: FROM x JOIN y ON x.benutzerid = y.benutzerid AND (...{WHERE-Kriterien}...)

MfG
Rouven

--
-------------------
sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
There's no such thing as a free lunch  --  Milton Friedman