[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не фильтруется запрос
Happy!
Здравствуйте, помогите пожалуйста, у меня есть таблица с иминами фамилиями и прочей ерундой, мне надо вывести в алфавитном порядке все уникальные имена и их id у которых type=1 я сделал так:
SELECT DISTINCT name FROM USER WHERE TYPE = '1' ORDER BY name

Все работало, а когда попытался вывести id и name то имена стали повторяться:
SELECT DISTINCT name, id FROM USER WHERE TYPE = '1' ORDER BY name
Placido
Здесь выбираются уникальные комбинации name и id. Чтобы выбрать уникальные, нужно группировать по name, например, так (здесь выбираются все уникальные name и id, если id - уникальный ключ, например, первичный, то DISTINCT в скобках можно убрать):
SELECT 
`name`,
GROUP_CONCAT(DISTINCT `id` ORDER BY `id`)
FROM USER
WHERE TYPE = '1'
GROUP BY `name`
ORDER BY `name`;
Alexey33
Happy!
SELECT DISTINCT name, id FROM USER WHERE TYPE = 1 ORDER BY name

Попробуй
Happy!
Именая выводит уникальные а вот вместо id выдает столбец с именем GROUP_CONCAT(DISTINCT `id` ORDER BY `id`) и данными [BLOB - 4B]
Placido
Это MySQL?
Happy!
Alexey33 не работает
Happy!
Placido да, извеняюсь забыл упомянуть
Placido
Тип поля id - INT?
Happy!
да int
Placido
А просто
SELECT 
`name`,
`id`
FROM USER
WHERE TYPE = '1'
GROUP BY `name`
ORDER BY `name`;
работает?
Happy!
Работает))) А почему имена уникальны?
Placido
Цитата (Happy! @ 2.04.2012 - 22:06)
Работает))) А почему имена уникальны?

Потому что по ним идет группировка. По идее, и предыдущий вариант рабочий.
Happy!
Спасибо большое очень помогли))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.