Подзапрос в операторе выбора не может найти производную таблицу?
Мне интересно, есть ли способ сделать эту работу. Я получаю таблицу "ГДЕ lie_start='green'" (и кучу других условий, которые я не хочу повторять), мне нужно получить число (и несколько другой информации) из него. Дополнительно мне нужно количество записей с дополнительным условием lie_finish='holed'. В настоящее время я получаю сообщение об ошибке: Таблица mydb.x не существует.
SELECT
COUNT(*) AS total,
(SELECT COUNT(*) FROM x WHERE lie_finish='holed') as holed
FROM (SELECT * FROM mydb.strokes WHERE lie_start='green') as x
1 ответ
Вам нужно повторить имя таблицы. Псевдоним таблицы не распознан:
SELECT COUNT(*) AS total,
(SELECT COUNT(*) FROM mydb.strokes WHERE lie_finish='holed') as holed
FROM (SELECT * FROM mydb.strokes WHERE lie_start='green') as x;
Тем не менее, это гораздо проще записать как:
select count(*) as total, sum(lie_finish = 'holed') as holed
from mydb.strokes s
where lie_start = 'green';