SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.04.2011 20:49:55

TuxL
Участник
Зарегистрирован: 23.04.2011
Сообщений: 1

Оставить только уникальные значения

Здравствуйте,
у меня есть проблема с созданием sql-запроса.
есть такая таблица:

id    name    value
1    a    1
2    a    1
3    a    1
4    b    1   
5    b    2
6    b    2
7    c    1
8    c    2
9    c    3

нужно для каждого name выбрать только уникальные значения value. но если возможных значений value для name только одно (как в случае с a), то не брать ничего.

т.е. в результате должно получиться
id    name    value
4    b    1   
5    b    2
7    c    1
8    c    2
9    c    3

Неактивен

 

#2 25.04.2011 10:53:53

ehill
Участник
Зарегистрирован: 23.03.2011
Сообщений: 10

Re: Оставить только уникальные значения

Доброго времени суток! Предложу свою версию запроса:
SELECT id, name, value
FROM ваша_таблица
WHERE name IN
  (SELECT name FROM
        (SELECT distinct name, value
        FROM ваша_таблица) AS new_ваша_таблица
GROUP BY name
HAVING COUNT(name) > 1)
GROUP BY name, value;

Возможно слишком много подзапросов, но результат получился нужным:
+------+------+-------+
| id   | name | value |
+------+------+-------+
|    4 | b    |     1 |
|    5 | b    |     2 |
|    7 | c    |     1 |
|    8 | c    |     2 |
|    9 | c    |     3 |
+------+------+-------+
5 rows in set (0.00 sec)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson