SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

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

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

Вы не зашли.

#1 10.04.2010 12:13:22

FiMko
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 18.09.2009
Сообщений: 198

Выбрать строки с уникальным id. Помогите с запросом

Ребята, всем привет!

Не могли бы вы помочь в составлении запроса.

Например есть таблица

mysql> select * from t;
+----+------+
| id | word |
+----+------+
|  1 | qwe  |
|  1 | qwe  |
|  2 | qwe  |
|  3 | qwe  |
+----+------+

Как выбрать только те строки из таблицы, где id уникален, то есть только строки с id 2 и 3.
В то время, как например такой запрос не подходит:
select DISTINCT * from t where word="qwe";
+----+------+
| id | word |
+----+------+
|  1 | qwe  |
|  2 | qwe  |
|  3 | qwe  |
+----+------+
 

Неактивен

 

#2 10.04.2010 12:17:43

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Выбрать строки с уникальным id. Помогите с запросом

SELECT id,MIN(word) FROM t GROUP BY id HAVING count(*)=1;

Неактивен

 

#3 10.04.2010 12:19:01

FiMko
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 18.09.2009
Сообщений: 198

Re: Выбрать строки с уникальным id. Помогите с запросом

rgbeast написал:

SELECT id,word FROM t GROUP BY id HAVING count(*)=1;

Здорово! Большое спасибо!

Неактивен

 

#4 10.04.2010 12:23:17

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Выбрать строки с уникальным id. Помогите с запросом

Я немного модифицировал запрос, добавил в него MIN(word), это не меняет результат, но запрос будет синтаксически корректен при всех значениях sql_mode; См ONLY_FULL_GROUP_BY в документации про sql_mode http://dev.mysql.com/doc/refman/5.0/en/ … -mode.html

Неактивен

 

Board footer

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