如何选择所有尚未与'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