Mysql запрос с подсчетом делает ошибку - PullRequest
0 голосов
/ 11 июля 2011

Следующий запрос mysql ...

SELECT a.*, b.*,
       ( 
            SELECT COUNT( * ) 
            FROM lp_units c 
            WHERE c.property_id = a.property_id 
        ) AS unitcount
FROM lp_property a,
     lp_property_confidential b
WHERE a.property_id = b.property_id
AND c.unitcount<= a.no_of_units
AND a.account_id = '1'

возвращает ошибку ...

Unknown column 'c.unitcount' in 'where clause'

Я думаю, что мой запрос будет понятен. решить, чтобы запустить ....

Заранее спасибо ...

1 Ответ

1 голос
/ 11 июля 2011

Не используйте c.unitcount.Просто unitcount.unitcount - это не столбец c, а временная таблица, сгенерированная подзапросом.

Однако этот запрос, вероятно, лучше в любом случае записать как соединение.

SELECT
  a.*,
  b.*,
  COUNT(c.property_id) as unitcount
  FROM lp_property a
  JOIN lp_property_confidential b ON a.property_id = b.property_id
  JOIN lp_units c ON c.property_id = a.property_id
  WHERE
  a.account_id = '1'
  GROUP BY a.property_id
  HAVING unitcount <= a.no_of_units
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...