Jon*_*ler 99
如果要将WHERE子句应用于UNION的结果,则必须在UN子句中嵌入UNION:
SELECT *
FROM (SELECT * FROM TableA
UNION
SELECT * FROM TableB
) AS U
WHERE U.Col1 = ...
Run Code Online (Sandbox Code Playgroud)
我假设TableA和TableB是联合兼容的.当然,您还可以将WHERE子句应用于UNION中的每个SELECT语句.
Dav*_*vid 13
您可能需要将UNION子包装在子中SELECT并在WHERE之后应用该子句:
SELECT * FROM (
SELECT * FROM Table1 WHERE Field1 = Value1
UNION
SELECT * FROM Table2 WHERE Field1 = Value2
) AS t WHERE Field2 = Value3
Run Code Online (Sandbox Code Playgroud)
基本上,UNION正在寻找两个完整的SELECT语句来组合,并且该WHERE子句是SELECT语句的一部分.
将outer WHERE子句应用于两个内部查询可能更有意义.您可能希望对这两种方法的性能进行基准测试,看看哪种方法更适合您.
| 归档时间: |
|
| 查看次数: |
83973 次 |
| 最近记录: |