[英]MySQL UNION ALL ORDER BY Column not In SELECT
我正在尝试完成查询,但最后的ORDER BY
有问题。 这是一个例子:
SELECT
fieldA, fieldB
FROM
tableA
WHERE [conditionA]
UNION ALL
SELECT
fieldA, fieldB
FROM tableA
WHERE [conditionB]
ORDER BY fieldA, fieldC
fieldC
不包含在SELECT
中,但存在于我正在使用的表中。 通常,在标准SELECT
中,这很容易实现。
ORDER BY
在概念上在UNION ALL
之后。 它只能引用SELECT
编辑的列。 因此,使用子查询执行此操作:
SELECT fieldA, fieldB
FROM ((SELECT fieldA, fieldB, fieldC
FROM tableA
WHERE [conditionA]
) UNION ALL
(SELECT fieldA, fieldB, fieldC
FROM tableA
WHERE [conditionB]
)
) a
ORDER BY fieldA, fieldC;
鉴于逻辑适用于同一张表,这很可能也可以满足您的要求:
SELECT fieldA, fieldB
FROM tableA
WHERE [conditionA] OR
[conditionB]
ORDER BY fieldA, fieldC;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.