|
my sql
|
|||
---|---|---|---|
#18+
доброго времени суток есть такой запрос Дать количество проживающих в гостинице на 23 марта по каждой категории номеров SELECT room_category.id_room_category, (SELECT name FROM room AS r LEFT JOIN room_category AS r1 ON r.id_room_category =r1.id_room_category) ,COUNT(room_category.id_room_category) AS 'количество проживающих' FROM room_category LEFT JOIN room ON room_category.id_room_category=room.id_room_category LEFT JOIN room_in_booking ON room.id_room=room_in_booking.id_room WHERE room.id_hotel=1 AND checkin_date<='2019-03-23' AND checkout_date>'2019-03-23' GROUP BY room_category.id_room_category при выполнении вылетает ошибка Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. Как это можно исправить? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 10:10 |
|
my sql
|
|||
---|---|---|---|
#18+
senfly, что именно из текста возникающей ошибки вам непонятно? Отвечая на ваш вопрос : 1) переписать табличный некоррелированный подзапрос из SELECT-листа в скалярный коррелированный, либо - вынести его в форме JOIN-а 2) если вам всё равно какое наименование должен возвращать подзапрос (а по написанному создается именно такое ощущение) - сделать так, чтобы он не возвращал более одной строки (limit, group by) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 10:46 |
|
|
start [/forum/topic.php?fid=47&msg=39830608&tid=1829075]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 305ms |
total: | 455ms |
0 / 0 |