如何選擇所有尚未與'alpha'配對的玩家? (輸出='gamma')。它應該工作,即使對錶是空的。MySQL查詢對
table: players
+----------+-------+
| playerID | name |
+----------+-------+
| 1 | alpha |
| 2 | beta |
| 3 | gamma |
+----------+-------+
table: pairs
+---------+---------+
| player1 | player2 |
+---------+---------+
| 2 | 3 |
| 1 | 2 |
+---------+---------+
我一直在掙扎幾個小時。對於例如如果我這樣做
SELECT p.*, r.*
FROM players p
JOIN pairs r
ON (player1 = playerID) OR (player2 = playerID)
WHERE
((r.player1 != 1) AND (r.player2 != 1));
輸出是'beta'和'gamma'。在連接中,'beta'出現兩次(每次與'alpha'和'gamma'配對)。 WHERE條件消除了一行'beta'。我想要的是'貝塔'的所有行都被消除。我是新手,嘗試過GROUP BY,HAVING等等的各種組合,我無法讓它工作。
你還在努力解決這個問題嗎? – AdamMc331
不,我不知道如何更喜歡我的解決方案(在我的編輯)比答案,因爲我不使用「不在」。但我真的很感謝下面的答案。謝謝 –
很高興它的工作!您可以隨時回答自己的問題並接受它,這可能會對未來的讀者更有幫助,他們會將您的編輯誤認爲是問題的一部分,而不是解決方案。 – AdamMc331