Mysql 在sql中查找不常见的用户
我有五张桌子。我想得到表1中不在表2、表3、表4和表5中的特定用户。有人能帮我吗Mysql 在sql中查找不常见的用户,mysql,sql,Mysql,Sql,我有五张桌子。我想得到表1中不在表2、表3、表4和表5中的特定用户。有人能帮我吗 table1(userid,discount) table2(userid,discount) table3(userid,discount) table4(userid,discount) table5(userid,discount) 以下查询: SELECT userid FROM table1 AS t1 WHERE NOT EXISTS ( SELECT 1 FROM ( SELECT
table1(userid,discount)
table2(userid,discount)
table3(userid,discount)
table4(userid,discount)
table5(userid,discount)
以下查询:
SELECT userid
FROM table1 AS t1
WHERE NOT EXISTS (
SELECT 1
FROM (
SELECT userid
FROM table2
UNION
SELECT userid
FROM table3
UNION
SELECT userid
FROM table4
UNION
SELECT userid
FROM table5) AS t2
WHERE t1.userid = t2.userid)
返回任何其他表中不存在的table1的所有用户
如果您还希望表2的所有用户都不存在于任何其他表中,则可以修改上述查询,以便从表2中返回用户,并在这两个查询之间执行联合:
SELECT userid
FROM table1 AS t1
WHERE NOT EXISTS (
SELECT 1
FROM (
SELECT userid
FROM table2
UNION
SELECT userid
FROM table3
UNION
SELECT userid
FROM table4
UNION
SELECT userid
FROM table5) AS t2
WHERE t1.userid = t2.userid)
UNION ALL
SELECT userid
FROM table2 AS t1
WHERE NOT EXISTS (
SELECT 1
FROM (
SELECT userid
FROM table1
UNION
SELECT userid
FROM table3
UNION
SELECT userid
FROM table4
UNION
SELECT userid
FROM table5) AS t2
WHERE t1.userid = t2.userid)
可以很容易地扩展以上内容,以便将所有表中的用户合并到一起。但是,我必须承认,它变得相当冗长 您应该添加一些示例。您的输入和预期输出是什么?那么具体要求是什么?要生成仅存在于一个表中的用户列表?这五个表中只有1-4个存在?我想在表1中找到表2、表3、表4和表4中没有的特定用户table5@Giogros你能告诉我如何找到表1、表2和表3中不在表4和表5中的公共值吗?请帮我找到答案:@Volka好吧,这是一个不同的问题,通常不鼓励在评论中回答问题。如果你想得到答案,你可以在这里发布不同的问题。正如你所建议的,我创建了一个新问题:请帮助我找到答案: