2013-11-25 3 views
0

У меня есть две таблицы t1 и t2, которые почти одинаковы, за исключением примерно шестнадцати тысяч записей t1, что t2 doesnt. Я пытаюсь сделать левое соединение, чтобы получить записи, которые имеют только t1.mysql-запрос не прекращает работу

когда я бегу следующий, кажется, как это работает (я всегда остановить его раньше, так как это не совсем то, что мне нужно, но я всегда получаю обратно соответствующие результаты):

select * from t1 LEFT JOIN t2 on t1.id = t2.id 

, но когда я добавляю следующее условие

select * from t1 LEFT JOIN t2 on t1.id = t2.id where t2.id is null 

он никогда не останавливается. Есть около 435 000 записей в одном и 420 000 записей в другом. Я также пробовал индексировать обе таблицы в поле, которое я сопоставляю, но безрезультатно.

+1

Is 'SELECT *' действительно необходимо? – Kermit

+0

@FreshPrinceOfSO Я изменил только на одно поле, и он все еще работает навсегда –

+0

Он не может остановиться. И это не остановится. – bobobobo

ответ

1

, что о чем-то вроде этого:

select t1.id from t1 where t1.id not in (select t2.id from t2) 
+0

это работает ... есть что-то не так с тем, что я написал? –

Смежные вопросы