I mit 3 Tabellen mit den folgenden Namen und Spalten arbeite:SQL JOIN keine Werte zurückkehrend
*Table 1*
**Users**
UserID UserName UserTypeNumber
1 John 1N
2 Mary 1N
3 Doe 1N
4 Sullivan 2N
5 Sally 1N
**Key = UserID**
*Table 2*
**MobileUsers**
Userid MobileAccess
1 Yes
2 Yes
3 Yes
4 Yes
5 No
**Key = UserID**
*Table 3*
**PanCards**
UserID CARD_NUMBER
3 2222
4 3333
5 1111
Key = UserID
Erläuterung:
- Jeder Benutzer verfügbar ist in beide Benutzer und MobileUsers Tabelle H Allerdings sind nicht alle Benutzer in PanCards Tabelle vorhanden. Dies ist , da nur Benutzer, denen eine Karte zugewiesen wurde, in der PanCards Tabelle angezeigt werden. In diesem Fall Doe mit UserID = 3 und Sullivan mit UserID = 4 eine Karte haben, daher erscheinen sie in PanCards Tabelle
Problem:
- Was will ich erreichen ist zum Ausfiltern der Benutzer von MobileUsers Tabelle, die haben MobileAccess entspricht Ja und thier UserTypeNumber entspricht 1N im Benutzer Tabelle, aber sind nicht in der PanCards Tabelle vorhanden.
Was ich bisher habe, ist die unten SQL Query:
SELECT MobileUsers.Userid, MobileUsers.MobileAccess
FROM MobileUsers
INNER JOIN Users
ON MobileUsers.Userid = Users.UserID
INNER JOIN PanCards
ON Users.UserID = PanCards.UserID
WHERE MobileUsers.MobileAccess = 'Yes'
AND
Users.UserTypeID = '1N'
AND
MobileUsers.Userid NOT IN
(SELECT PanCards.UserID FROM PanCards)
Ergebnis eine leere Tabelle
Userid MobileAccess
Allerdings ist das, was ich will, ist das unten Ergebnis haben zurückgegeben:
Userid MobileAccess
1 Yes
2 Yes
Wie kann ich das beheben und die richtigen Ergebnisse erhalten?
Sie machen einen INNEREN JOIN mit PanCards, das bedeutet, es muss eine Zeile in dieser Tabelle sein. Entfernen Sie diese Verbindung –