我写了这个 SQL 查询,但它没有返回任何结果,即使 union all 和 front 后面的第一条语句分开工作,它也会抛出错误。我认为问题在于 order by 和 union 一起工作。
一起使用有什么问题?为什么 SQL 不允许呢?还有,怎么处理?
我试过了,但它给出了以下错误。
SELECT
CONCAT(NAME, '(', LEFT(OCCUPATION,1), ')')
FROM
OCCUPATIONS
ORDER BY
NAME ASC
UNION ALL
SELECT
CONCAT('There are a total of ', COUNT(OCCUPATION), ' ', LOWER(OCCUPATION), 's.')
FROM
OCCUPATIONS
GROUP BY
OCCUPATION
ORDER BY
COUNT(OCCUPATION) ASC, OCCUPATION ASC
ERROR 1064 (42000) 在第 4 行:你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在“UNION ALL”附近使用的正确语法 SELECT CONCAT('第4行共有',COUNT(OCCUPATION),'',LOWER(O'
https://dev.mysql.com/doc/refman/8.0/en/set-operations.html#set-operations-order-by-limit
要将 ORDER BY 或 LIMIT 子句应用于用作并集、交集或其他集合操作的一部分的单个查询块,请将查询块括起来,将子句放在括号内,如下所示:
(SELECT a FROM t1 WHERE a=10 AND b=1 ORDER BY a LIMIT 10) UNION (SELECT a FROM t2 WHERE a=11 AND b=2 ORDER BY a LIMIT 10);