2016-06-13 75 views
0

所以我寫的SQL代碼讓球員只有在球隊2:如何僅在sql中獲取值?

SELECT PlayerID from Player 
WHERE EXISTS 
(SELECT * from Team WHERE team.PlayerID = Player.PlayerID AND Team.TeamID = 't002'); 

的問題是,我忘了,有可能是情況下,球員也是其他球隊,所以任何想法如何解決這個問題?

+0

讓你的團隊表包含有playerId和teamId爲重點行? – theB3RV

+0

如果您喜歡,請考慮遵循以下簡單的兩步操作步驟:1。如果您尚未這樣做,請提供適當的CREATE和INSERT語句(和/或sqlfiddle),以便我們可以更輕鬆地複製問題。 2.如果您尚未這樣做,請提供與步驟1中提供的信息相對應的所需結果集。 – Strawberry

回答

1

使用的,而不是在

SELECT PlayerID from Player 
WHERE PlayerID in ( 
     SELECT team.PlayerID from Team WHERE Team.TeamID = 't002' 
) 
AND not in (
     SELECT team.PlayerID from Team WHERE Team.TeamID != 't002' 
) 
; 
0

應該使用加入,而不是

SELECT PlayerId FROM Player JOIN Team 
WHERE Team.PlayerId = Player.PlayerId AND Team.TeamId = 't002' 
AND NOT IN (SELECT team.PlayerID FROM Team 
WHERE Team.TeamId != 't002');