SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 10.06.2009 16:15:25

maskaral
Участник
Зарегистрирован: 10.06.2009
Сообщений: 9

Выбрать из таблицы то, что нету в 2-х других

Здравствуйте.

Надо выбрать из первой таблицы записи, которых нет в двух других таблицах.

В первой табл. записи уникальные,
во второй и третьей могут повторяться.

Помогите решить, плиз.

В один запрос можно запихать?

MySQL 3. Переезд на 5 в процессе, возникли сложности.

Отредактированно maskaral (10.06.2009 17:07:36)

Неактивен

 

#2 10.06.2009 17:21:04

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Выбрать из таблицы то, что нету в 2-х других

SELECT *
FROM t1
LEFT JOIN t2 USING (id)
LEFT JOIN t3 USING (id)
WHERE t2.id IS NULL OR t3.id IS NULL;

Неактивен

 

#3 10.06.2009 17:33:34

maskaral
Участник
Зарегистрирован: 10.06.2009
Сообщений: 9

Re: Выбрать из таблицы то, что нету в 2-х других

Спасибо,

но... тормозит сильно... отрубаю, слишком долго...
Учитывая то, что во 2 таблице 11 млн. записей
в 3 таблице 13 млн. записей

Можно еще как-то ускорить?
Или может быть быстрее будет разбить его на части?

И еще это только часть запроса. Всего подключается 6 таблиц с кучей фильтров

Отредактированно maskaral (10.06.2009 17:41:28)

Неактивен

 

#4 10.06.2009 21:38:53

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Выбрать из таблицы то, что нету в 2-х других

Если сделать индексы, то будет работать быстрее smile

Неактивен

 

#5 11.06.2009 00:27:47

maskaral
Участник
Зарегистрирован: 10.06.2009
Сообщений: 9

Re: Выбрать из таблицы то, что нету в 2-х других

Индексы есть.

То ли их много,
То ли из-за того, что выборка идёт по полю VARCHAR

Неактивен

 

#6 11.06.2009 13:09:12

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Выбрать из таблицы то, что нету в 2-х других

Быстрее, чем по индексу, не выберете. Правильность можно оценить только если покажете еще метаданные табличек.

Неактивен

 

Board footer

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