Подзапрос в операторе выбора не может найти производную таблицу?

Мне интересно, есть ли способ сделать эту работу. Я получаю таблицу "ГДЕ 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';
Другие вопросы по тегам