MySQL « MySQL Выборка двух полей, одно из которых возвращает только уникальные записи

Пытаюсь сделать запрос в БД: взять vid_id и name, но vid_id повторяется, а должны быть только уникальные записи. Есть два ограничения:
1. нельзя делать вложенные запросы.
2. Данные нужно получить одним запросом

Пробовал DISTINCT - не помогло, а точнее работает как нужно пока делаю выборку только vid_id. Гугл тоже не помог.

1 ответов



select name, vid_id from table1 group by
  name
vid_id
 
вернет набор записей, в котором каждое значение name уникальное. vid_id в данном случае будет любым из набора vid_id, соответсвующих данному name.


Тогда так наверное

select a.name, a.vid_id from
table1 a
INNER JOIN
(select  vid_id, count(*)  AS cnt from table1 group by vid_id HAVING cnt = 1)b ON b.vid_id  = a.vid_id
 

В предыдущем ответе правильное решение получилось, но уж больно путь сложный. Так проще:


SELECT vid_id, max(name)
FROM table1
GROUP BY vid_id