Следующий запрос работает просто отлично. Я использую значение из внешнего выбора для фильтрации внутри внутреннего выбора.
SELECT
bk.ID,
(SELECT COUNT(*) FROM guests WHERE BookingID = bk.ID) as count
FROM
bookings bk;
Однако следующий выбор не будет работать:
SELECT
bk.ID,
(SELECT SUM(count) FROM (SELECT COUNT(*) AS count FROM guests WHERE BookingID = bk.ID GROUP BY RoomID) sub) as sumcount
FROM
bookings bk;
Сообщение об ошибке: Error Code: 1054. Unknown column 'bk.ID' in 'where clause'
Почему мой псевдоним bk
известен в подвыборке, но не в подвыборке вложенной выборки?
Для справки, я использую MySQL 5.6.
RoomID
, но затем отбросить всю информацию о комнате и просто сложить их вместе? Не могли бы вы добавить некоторые примеры данных и ожидаемые результаты? - person Damien_The_Unbeliever   schedule 17.06.2015FROM
, в отличие от вашего оригинала, где вы ссылаетесь на него в предложенииWHERE
. Но не уверен на 100%. - person Damien_The_Unbeliever   schedule 17.06.2015FROM (this is a Derived Table) sub
в скалярном подзапросе. - person dnoeth   schedule 17.06.2015