SQL中的UNION之后的WHERE语句?
如何在SQL / MySQL中的UNION之后应用WHERE语句?
如果要将WHERE子句应用于UNION的结果,则必须将UNIONembedded到FROM子句中:
SELECT * FROM (SELECT * FROM TableA UNION SELECT * FROM TableB ) AS U WHERE U.Col1 = ...
我假设TableA和TableB是联合兼容的。 当然,您也可以将WHERE子句应用于UNION中的各个SELECT语句。
您可能需要将UNION
包装在子SELECT
然后应用WHERE
子句:
SELECT * FROM ( SELECT * FROM Table1 WHERE Field1 = Value1 UNION SELECT * FROM Table2 WHERE Field1 = Value2 ) AS t WHERE Field2 = Value3
基本上, UNION
正在寻找两个完整的SELECT
语句进行组合,而WHERE
子句是SELECT
语句的一部分。
将外部WHERE
子句应用于两个内部查询可能更有意义。 您可能想要对两种方法的性能进行基准testing,并查看哪种方法对您更好。
select column1..... from table1 where column1='' union select column1..... from table2 where column1= ''