我有一个非常关键的代码。我试图从一个表的两列中选择与另一表的一列中的记录匹配的所有记录。 这是我到目前为止的结果
SELECT username FROM users
WHERE username NOT IN (SELECT friend FROM friends WHERE friend = 'user1')
AND username NOT IN (SELECT you FROM friends WHERE you = 'user1')
这不可能是正确的... 我希望列 [username] 中与表 {friends} 中的 [you] 和 [friend] 列中的“user1”不匹配的记录成为该 sql 选择的结果。 请参阅演示以获取更多理解。 感谢您的帮助。
问题已解决,希望对其他人有帮助
SELECT username,you,friend FROM users, friends
WHERE you IN (SELECT you FROM friends WHERE you != 'user1')
AND friend IN (SELECT friend FROM friends WHERE friend != 'user1')
AND username IN (you,friend)
这是一个 Live demo
最佳答案
我们现在可以通过两种方式来解释您想要的内容。
选项1 - 这正是我认为您所要求的,但不是我认为您想要的。
SELECT username FROM users u, friends f
WHERE username = f.friend and f.friend <> 'user1'
union
SELECT username FROM users u, friends f
WHERE username = f.you and f.you <> 'user1'
选项2 - 这就是我认为你想要的。请参阅how to translate it to mysql. 从用户 u、 friend f 中选择用户名 WHERE 用户名 = f.friend 和 f.friend <> 'user1' 相交 从用户 u、 friend f 中选择用户名 WHERE 用户名 = f.you 和 f.you <> 'user1'
关于mysql - 从表中选择列值不等于 'myvalue' 的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19469869/