SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 29.05.2010 23:08:30

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

Помогите составить запрос

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

Подскажите, пожалуйста как реализовать...

mysql> select * from table1;
+----+------+
| id | word |
+----+------+
|  1 | abc  |
+----+------+
mysql> select * from table2;
+----+------+
| id | word |
+----+------+
|  1 | abc  |
|  2 | qwe  |
|  3 | def  |
+----+------+

Необходимо отфильтровать выбранные из table2 id - оставить только те, которые не были найдены в table1

select a.id from table1, (
    select id from table2 where word="abc"
) a where a.id <> table1.id;
+----+
| id |
+----+
|  1 |
+----+

А хочется чтобы в данном случае вернулось пусто.
Заранее благодарю за помощь!

Отредактированно FiMko (29.05.2010 23:11:26)

Неактивен

 

#2 30.05.2010 01:00:42

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

Re: Помогите составить запрос

Уточните пожалуйста вопрос. Какой результат Вы хотите получить?

Неактивен

 

#3 30.05.2010 10:48:12

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

Re: Помогите составить запрос

rgbeast написал:

Уточните пожалуйста вопрос. Какой результат Вы хотите получить?

Скажем имеется некоторый запрос, который возвращает список id (см. содержимое таблиц выше):

select id from table2; # запрос А
+---------+
|     id  |
+---------+
|      1  |
|      2  |
|      3  |
+---------+

Необходим еще один запрос, который отфильтрует данные, что вернул запрос А, выкинув все строки, которые были найдены в таблице table1.

выбрать только те строки, что НЕ найдены в table1 # запрос B
    select id from table2; # запрос А
+---------+
|     id  |
+---------+
|      2  |
|      3  |
+---------+

Отредактированно FiMko (30.05.2010 10:48:44)

Неактивен

 

#4 30.05.2010 13:06:56

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

Re: Помогите составить запрос

select id from table2 LEFT JOIN table1 USING(id) WHERE table1.id IS NULL;

Неактивен

 

#5 30.05.2010 23:30:16

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

Re: Помогите составить запрос

rgbeast написал:

select id from table2 LEFT JOIN table1 USING(id) WHERE table1.id IS NULL;

rgbeast, большое спасибо! Этот способ работает.

Неактивен

 

Board footer

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