Выполнение простого запроса 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..
Итак, псевдоним обязателен? Спасибо!