Смущение подзапросами MySQL - PullRequest
0 голосов
/ 14 августа 2011

Я пытаюсь научиться делать подзапросы, и я действительно смущен тем, что не так с этим простым примером.

Моя первая попытка была

SELECT COUNT(SELECT * FROM my_table);

, но это нене работает (наверное, потому что мне нужна временная таблица?), поэтому я попробовал это:

SELECT COUNT(items)
FROM (SELECT * FROM my_table) AS items;

Почему я получаю следующее:

1054: элементы Неизвестного столбца ''в' списке полей '

1 Ответ

2 голосов
/ 14 августа 2011

Вы получаете ошибку, потому что в этом примере items - это таблица (как псевдоним), а не столбец.Самое простое решение - использовать:

SELECT COUNT(*)
  FROM (SELECT * FROM my_table) AS items

Агрегатные функции (IE: COUNT, MIN, MAX, AVG и т. Д.) Работают только со ссылками на столбцы, но некоторые принимают [table]. * В качестве параметра.

...