从MySQL联合查询中排除结果
从MySQL联合中排除结果的正确方法是什么?我正在寻找与之相当的:从MySQL联合查询中排除结果,sql,mysql,union,Sql,Mysql,Union,从MySQL联合中排除结果的正确方法是什么?我正在寻找与之相当的: (query1) UNION (query2) UNION (query3) EXCEPT (query4) 您可以使用WHERE NOT IN.我知道这是mySQL,不过这可能有用。我在SQLServer上使用它 select * from ( select (query1) union select (query2) ) a where a.column = xyz 要进行排除比较的列是否可以为空? 也就是说,这些值
(query1)
UNION
(query2)
UNION
(query3)
EXCEPT
(query4)
您可以使用WHERE NOT IN.我知道这是mySQL,不过这可能有用。我在SQLServer上使用它
select * from (
select (query1)
union
select (query2)
) a
where a.column = xyz
要进行排除比较的列是否可以为空?
也就是说,这些值可以为NULL吗
如果是-使用不在
或不存在
-
如果不是,请使用左连接/IS NULL
,因为这样效率更高-请参阅
SELECT a.* FROM
(
SELECT ... FROM table_a
UNION
SELECT ... FROM table_b
)a
WHERE a.x NOT IN (...)
// or WHERE NOT EXIST ....'
// or LEFT JOIN table_n ON () WHERE table_n.id IS NULL