2016-07-29 9 views
0

Ich versuche, links beitreten 2 Tabellen bei der Verwendung der mysql "NOT IN" -Bedingung. Das Problem, das ich habe, ist, dass, wenn Links Join ist Null, was bedeutet, dass es keinen Eintrag zu Links Join gibt, funktioniert der Mysql NOT IN-Operator nicht gut.Mysql links Join zwei Tabellen bei der Verwendung von NOT IN Bedingung

Hier ist ein Beispiel.

SELECT PLAYERS.*, 
TYPES.GUEST_ID 

FROM PLAYERS 
LEFT JOIN TYPES ON TYPES.GUEST_ID = PLAYERS.GUEST_ID 
WHERE PLAYERS.ID = '1' AND TYPES.GUEST_ID NOT IN('1', '2') 

Da es derzeit keine übereinstimmenden Zeilen in TYPES-Tabelle gibt. Der NOT IN-Operator funktioniert nicht. Gibt es einen Workaround dafür?

+0

Was wollen Sie erreichen? –

Antwort

1

Verwendung IS NULL:

SELECT PLAYERS.*, TYPES.GUEST_ID 
FROM PLAYERS 
    LEFT JOIN TYPES ON TYPES.GUEST_ID = PLAYERS.GUEST_ID 
WHERE TYPES.GUEST_ID NOT IN('1', '2') OR TYPES.GUEST_ID IS NULL 
+0

Super! das hat funktioniert – sam

0

Legen Sie es in der on Klausel

SELECT PLAYERS.*, 
TYPES.GUEST_ID 
FROM PLAYERS 
LEFT JOIN TYPES ON TYPES.GUEST_ID = PLAYERS.GUEST_ID 
       AND TYPES.GUEST_ID NOT IN(1, 2) 
+0

Vielen Dank für Ihre Antwort. Das funktioniert auch, aber die erste Lösung ist besser für meine Situation. – sam