SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 23.10.2011 22:10:28

VBlond
Участник
Зарегистрирован: 23.10.2011
Сообщений: 7

Выборка значений одной таблицы, которых нет в другой по уникальным ключам

Здравствуйте! Помогите пожалуйста в решении следующей задачи:

Есть таблица t1, в ней примерно 120.000 записей, у каждой записи есть уникальное поле hash. Данные из этой таблицы преобразовывались и, совмещая с данными других таблиц, изменялись и заносились в таблицу t2 средствами php. В результате этого около 11.000 записей были "утеряны", т.е. в итоговую таблицу не попали.

В таблице t2 также имеется уникальное поле hash. Требуется найти эти "утерянные" записи, т.е. выбрать из t1 все записи, hash которых не содержится в t2.

Пробовал запросы вида SELECT t1.id, t1.hash, t2.hash FROM t1 LEFT JOIN t2 WHERE t1.hash <> t2.hash, но phpmyadmin просто-напросто зависает.

Неактивен

 

#2 23.10.2011 22:46:24

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

Re: Выборка значений одной таблицы, которых нет в другой по уникальным ключам

SELECT t1.hash FROM t1 LEFT JOIN t2 USING (hash) WHERE t2.hash IS NULL;

Для адекватного времени выполнения нужен ключик на (hash) в обеих таблицах.

Неактивен

 

#3 26.10.2011 00:25:12

VBlond
Участник
Зарегистрирован: 23.10.2011
Сообщений: 7

Re: Выборка значений одной таблицы, которых нет в другой по уникальным ключам

Спасибо большое! Работает на УРА!

Неактивен

 

Board footer

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