MySQL - SELECT, убрать дубли, оптимизировать при 2х JOIN

Статус
В этой теме нельзя размещать новые ответы.
Еще один вариант: по одной строке на пользователя, в одном поле собираем все города, в другом все телефоны, думаю попроще в реализации будет.
Если сможешь сделать через любой разделитель (хоть пробел) - очень даже вариант )))
 
Вот на быструю руку
Код:
SELECT
`u`.*,
GROUP_CONCAT(DISTINCT(`c`.`title`) SEPARATOR ', ') AS `city`,
GROUP_CONCAT(DISTINCT(`p`.`title`) SEPARATOR ', ') AS `phone`
FROM `clients` AS `u`
LEFT JOIN clients_contacts AS `p` ON `u`.`id` = `p`.`client_id` AND `p`.`type` = 3
LEFT JOIN clients_contacts AS `c` ON `u`.`id` = `c`.`client_id` AND `c`.`type` = 1
GROUP BY `u`.`id`
 
konov, так я ж показывал уже в первом посте )))
Про ахинею не к Вам относилось... Сори...

Второй пункт, к сожалению, так и будет... GROUP BY `id` говорит, что необходимо соединить все строчки с 1 id в 1 строку... А мне нужно получить в данном случае 2 строки с одинаковым id. При GROUP BY `id` это не получится сделать...
Girt, а вот это идея! GROUP BY `p`.`id` - чёт такой вариант в бошку не приходил... Может сработать... В 2 часа ночи запустить интерпретатор в голове не получается, а базы под рукой нет, предсказать поведение MySQL не могу, но явно что-то хорошее в этом есть...

я думаю GROUP BY будет писать все таки в 2 строки.
Про условие WHERE согласен, нужно переделать, думаю после свертки дописывать AND и вот так параметр ISNULL(p.type, 3) = 3

Киньте мне структуру базы, плиз, хотя по 10 клиентам.
я вам напишу короткий запрос.
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху