powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
13 сообщений из 13, страница 1 из 1
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39337134
mnbcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В MySQL 5.7 появляется ошибка:

Mysqli prepare error: Expression #142 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'mnbcz_arenda.kfk.kvartira_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Код: sql
1.
SELECT `kv`.*, `metro`.`line` AS `metro_line`, `metro`.`name` AS `metro_name`, `metro`.`udalennost` AS `metro_udalennost`, `metro`.`is_top` AS `metro_is_top`, (SELECT COUNT(*) FROM kvartirant pk WHERE pk.telefon = kv.telefon) AS `num_dublikat`, `kfk`.`kvartira_id` AS `kfk_kvartira_id` FROM `temp_klient_search_75135` AS `kv` LEFT JOIN `_gorod2_metro` AS `metro` ON metro.id = kv.metro_id LEFT JOIN `kvartiri_for_klient` AS `kfk` ON kv.id = kfk.klient_id GROUP BY `kv`.`id`, `kfk_kvartira_id` ORDER BY `id_temp` ASC



Как исправить? Как правильно составить запрос соответствующий стандартам?
Нужно чтобы в результате не появлялись одинаковые записи с kv.id.
Кажется нужно в GROUP BY перечислить все столбцы в SELECT, но их там очень много, запрос вида SELECT * FROM.
...
Рейтинг: 0 / 0
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39337135
mnbcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точнее этот запрос:

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT `kv`.*, `metro`.`line` AS `metro_line`, `metro`.`name` AS `metro_name`, 
`metro`.`udalennost` AS `metro_udalennost`, `metro`.`is_top` AS `metro_is_top`, 
(SELECT COUNT(*) FROM kvartirant pk WHERE pk.telefon = kv.telefon) AS `num_dublikat`, 
`kfk`.`kvartira_id` AS `kfk_kvartira_id` FROM `temp_klient_search_74407` AS `kv` 
LEFT JOIN `_gorod2_metro` AS `metro` ON metro.id = kv.metro_id 
LEFT JOIN `kvartiri_for_klient` AS `kfk` ON kv.id = kfk.klient_id 
GROUP BY `kv`.`id` ORDER BY `id_temp` ASC



Ошибка: Mysqli prepare error: Expression #142 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'mnbcz_arenda.kfk.kvartira_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
...
Рейтинг: 0 / 0
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39337145
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mnbcz,

1. сменить sql_mode

2. переписать запрос, например,
select * from (select id .. group by id) t join ...
при группировке получаете id, для которых вытаскиваете остальные поля

другие варианты изменения запроса есть тут
...
Рейтинг: 0 / 0
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39337150
mnbcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот этот запрос, как указано в том мануале, через join-ы все равно не работает, строки дублируются, что не так?:

Код: sql
1.
2.
3.
4.
5.
6.
7.
 SELECT DISTINCT `kv`.*, `kv`.`metro` AS `metro_name`, 
(SELECT COUNT(*) FROM kvartiri pk WHERE pk.telefon = kv.telefon) AS `num_dublikat`, 
(SELECT COUNT(*) FROM kvartiri_for_klient kfk WHERE kfk.kvartira_id = kv.id) AS `num_klienti_for_kvartira`, 
`kfk`.`klient_id` AS `kfk_klient_id` FROM `temp_kvartiri_search_15636` AS `kv` 
LEFT JOIN `kvartiri_for_klient` AS `kfk` ON kv.id = kfk.kvartira_id 
INNER JOIN (SELECT id, max(date_add_base) AS mtime FROM kvartiri GROUP BY id) AS `kv2` 
ON kv.id = kv2.id AND kv.date_add_base = kv2.mtime ORDER BY `id_temp` ASC
...
Рейтинг: 0 / 0
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39337163
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mnbcz,
ты уверен? все поля одинаковые?
...
Рейтинг: 0 / 0
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39337182
mnbcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что значит одинаковые?, как понять?, например?
...
Рейтинг: 0 / 0
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39337183
mnbcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос есть выше, одинаковые поля?
...
Рейтинг: 0 / 0
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39337199
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mnbcz,

две полностью одинаковые строки
...
Рейтинг: 0 / 0
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39337205
mnbcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В базе нет полностью одинаковых строк, там kv.id всегда уникальный.
...
Рейтинг: 0 / 0
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39337220
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mnbczВ базе нет полностью одинаковых строк, там kv.id всегда уникальный.
вот и ответ
...
Рейтинг: 0 / 0
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39337463
mnbcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадявот и ответ

Поэтому и не работает?
...
Рейтинг: 0 / 0
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39337483
mnbcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот этот запрос как нужно правильно составить:

Код: sql
1.
2.
SELECT `kv`.*, `kfk`.`klient_id` AS `kfk_klient_id` FROM `kvartiri` AS `kv` 
LEFT JOIN `kvartiri_for_klient` AS `kfk` ON kv.id = kfk.kvartira_id ORDER BY `kv`.`id_temp` ASC



`kfk_klient_id` - это ид клиента прикрепленного к этой квартире.


Таблица kvartiri_for_klient содержит подобранные квартиры для клиента

Код: powershell
1.
2.
3.
4.
id	int(11)	NO	PRI	(null)	auto_increment
klient_id	int(11)	YES	MUL	(null)	
kvartira_id	int(11)	YES	MUL	(null)	
user_id	int(11)	YES	MUL	(null)	



Таблица kvartiri содержит квартиры
Код: powershell
1.
2.
3.
4.
id	int(11)	NO	PRI	(null)	auto_increment
gorod_id	int(11)	YES	MUL	(null)
........
	





Как нужно составить запрос с GROUP BY чтобы записи не повторялись?
...
Рейтинг: 0 / 0
ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
    #39338001
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
left join убрать.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ORDER BY как правильно составить. Ошибка: SELECT list is not in GROUP BY clause and contai
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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