powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ORDER по вложеному SELECT
4 сообщений из 4, страница 1 из 1
ORDER по вложеному SELECT
    #40075674
Lutsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, возможно ли сделать выборку по условию вложенного селекта "unreaded" в запросе?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT
	g.*,
	COUNT(m.id) AS count_messages,
	(SELECT COUNT(*) FROM `la3po_abc_messages` WHERE `group_id` = `g`.`id` AND `idTo` = 895 AND `is_read` = 0) AS unreaded
FROM `la3po_abc_message_group` AS `g`
LEFT JOIN `la3po_abc_messages` AS `m` ON `m`.`group_id` = `g`.`id`
WHERE (`g`.`created_by` = 895 OR `g`.`recipient` = 895) AND `g`.`type` = 'user' AND unreaded = 0
GROUP BY `g`.`id`
ORDER BY `g`.`created` asc LIMIT 20



unreaded = 0 вызывает ошибку неизвестного поля.

PS. В теме не "ORDER", а "WHERE", сорри.
...
Рейтинг: 0 / 0
ORDER по вложеному SELECT
    #40075735
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алиас исходного поля нельзя использовать во WHERE - его в момент выполнения WHERE просто не существует.
Либо вместо имени надо использовать выражение (только в случае запроса без GROUP BY), либо переместить условие в HAVING.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT
	g.*,
	COUNT(m.id) AS count_messages,
	(SELECT COUNT(*) FROM `la3po_abc_messages` WHERE `group_id` = `g`.`id` AND `idTo` = 895 AND `is_read` = 0) AS unreaded
FROM `la3po_abc_message_group` AS `g`
LEFT JOIN `la3po_abc_messages` AS `m` ON `m`.`group_id` = `g`.`id`
WHERE (`g`.`created_by` = 895 OR `g`.`recipient` = 895) AND `g`.`type` = 'user' 
GROUP BY `g`.`id`
HAVING unreaded = 0
ORDER BY `g`.`created` asc LIMIT 20



PS. Но вообще запрос синтаксически некорректен, и если выполнится, то только благодаря расширению MySQL. При этом бОльшая часть значений, полученных выходном наборе из la3po_abc_message_group, не имеет смысла.
...
Рейтинг: 0 / 0
ORDER по вложеному SELECT
    #40075745
Lutsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хм. А в чем именно синтаксически некорректен? Не везде обратные кавычки?
...
Рейтинг: 0 / 0
ORDER по вложеному SELECT
    #40075799
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного неточно. Синтаксически некорректен, если g.id уникален. Иначе он некорректен логически. ONLY_FULL_GROUP_ BY.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ORDER по вложеному SELECT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]