2
Der Titel klingt ein wenig seltsam, aber was ich versuche, ist wie folgt. In Anbetracht der TabellenWie schreibe ich einen JOIN, wenn die zweite Tabelle eine ON-Übereinstimmung, aber keine WHERE-Übereinstimmung hat
A.a A.b B.a B.c B.d
--- --- --- --- ---
1 X 1 10 Z
2 Y 1 30 W
ich eine Abfrage mag, die Art von aussehen könnte wie folgt aus:
SELECT A.a, B.d FROM A
some kind of JOIN B ON A.a = B.a
...WHERE A.a = :a AND B.c = :c
Nun, wenn ich den folgenden Ersatz will ich diese Antworten bekommen:
:a :c A.a B.d
-- -- --- ---
1 10 --> 1 Z
1 20 --> 1 NULL
2 any --> empty set
Ich benutze MySQL so FULL JOIN kommt nicht in Frage.
NICHT GELÖST
ich dachte, ich hätte es selbst herausgearbeitet:
SELECT A.a, CASE WHEN B.c = :c THEN B.d ELSE NULL FROM A
LEFT JOIN B ON A.a = B.a
WHERE A.a = :a AND B.c = :c
Aber das gibt:
:a :c A.a B.d
-- -- --- ---
1 20 --> 1 NULL
1 10
Vielen Dank, diese Version scheint für alle meine Testbedingungen zu funktionieren! –