我有这个查询(简化):
SELECT score FROM tbl WHERE id = xx ORDER BY score DESC;
它运作正常。现在,我向此查询添加UNION
,如下所示:
(SELECT score FROM tbl WHERE id = x ORDER BY score DESC)
UNION
(SELECT score FROM tbl WHERE id = y)
现在第一个查询的所有第一个结果集都搞砸了,不尊重ORDER BY score DESC
答案 0 :(得分:4)
SELECT score FROM tbl WHERE id = x 联盟 SELECT score FROM tbl WHERE id = y
ORDER BY得分DESC;
只需将订单添加到最后。它将适用于整个结果集。如果要区分结果,请添加订单col,如下所示:
选择1作为order_col,得分FROM tbl WHERE id = x 联盟 SELECT 2为order_col,得分FROM tbl WHERE id = y
ORDER BY order_col,得分DESC;
答案 1 :(得分:1)
在联合查询中,order by必须与最后一次选择一起放置。
答案 2 :(得分:0)
好的,我找到了解决方案。
不允许使用UNION和ORDER BY。我只能在UNION结尾处放置ORDER BY