mic*_*ael 6 sql postgresql union union-all
在以下查询中,我收到语法错误:
SELECT <property1>, <property2>
FROM <table1>
ORDER BY <condition> LIMIT 1
UNION ALL
SELECT <property1>, <property2>
FROM <table2>
WHERE <condition> ORDER BY <condition> LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
"UNION"第4行或附近的语法错误:UNION ALL
每个SELECT独立的执行都很好.我的猜测是关于ORDER BY... LIMIT 1可能的?
Luk*_*zda 15
用以下内容包装每个查询():
(SELECT <property1>, <property2>
FROM <table1>
ORDER BY <condition> LIMIT 1)
UNION ALL
(SELECT <property1>, <property2>
FROM <table2>
WHERE <condition> ORDER BY <condition> LIMIT 1);
Run Code Online (Sandbox Code Playgroud)
您还可以订购最终查询:
(SELECT 'a' AS col
ORDER BY col LIMIT 1)
UNION ALL
(SELECT 'b' AS col
ORDER BY col LIMIT 1)
ORDER BY col DESC
Run Code Online (Sandbox Code Playgroud)
@lad2025 的第一个答案是正确的,
但下面的概括是不正确的,因为必须是整个条件,包括 desc 子句。
这是正确的代码:
(SELECT 'a' AS col
ORDER BY col DESC LIMIT 1)
UNION ALL
(SELECT 'b' AS col
ORDER BY col DESC LIMIT 1)
ORDER BY col DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)
否则,您仅选择 select 1 和 select 2 的两个最低列中的最高列(如果有)
(而不是所有列中最高的列)
,并且您也不能忘记最后的 LIMIT 1 。