做一个简单的except
查询可以工作,并根据我的需要返回我的单个列。我的客户端甚至会给我计数,这是我最终需要的。
但是,在使用上一个结果作为目标表时使用COUNT会返回错误。
这项工作:
(SELECT id
FROM product_to_machine
WHERE created_timestamp > "2020-12-01" AND shortcut = 0)
EXCEPT
(SELECT id
FROM product_out_of_machine)
它返回具有许多值的单个列,并且客户端提示其大小为1865r*1c。
这不起作用:
SELECT COUNT(*)
FROM(
(SELECT id
FROM product_to_machine
WHERE created_timestamp > "2020-12-01" AND shortcut = 0)
EXCEPT
(SELECT id
FROM product_out_of_machine)
)
这返回一个错误:
/* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 9 */
第9行对应于右括号。我做错了什么或误解了什么?
版本:MariaDB 10.4.12
你的括号太重了,试试
SELECT COUNT(*)
FROM
(SELECT id
FROM product_to_machine
WHERE created_timestamp > "2020-12-01" AND shortcut = 0
EXCEPT
SELECT id FROM product_out_of_machine
) a;
还要注意别名a..