繁体   English   中英

MySQL UNION ALL ORDER BY Column not In SELECT

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM