Гравицапа
elbirret elcno
Join больших таблиц...
table1
id | foo
table2
id| prop_id| tb1_id
Надо выбрать из table1 такие значения, что бы для определённого table2.prop_id и tb1_id = table1.id в table2 не было записей. Выборка делается для того, что бы для тех table1.id, у которых нет записи в table2 c определённым prop_id сделать вставку с этим самым prop_id.
Делаю так
[SQL]SELECT t1.id, t1.foo, t2.prop_id FROM table1 t1 LEFT JOIN table2 t2 ON t1.id=t2.tb1_id AND t2.prop_id = 10 WHERE t2.prop_id IS NULL[/SQL]
Всё работает замечательно, но медленно при количестве записей в таблицах ~ 10 000
Можно ли как-нибудь по другому это сделать?
P.S. DELETE FROM table2 ...+ INSERT не предлагать
table1
id | foo
table2
id| prop_id| tb1_id
Надо выбрать из table1 такие значения, что бы для определённого table2.prop_id и tb1_id = table1.id в table2 не было записей. Выборка делается для того, что бы для тех table1.id, у которых нет записи в table2 c определённым prop_id сделать вставку с этим самым prop_id.
Делаю так
[SQL]SELECT t1.id, t1.foo, t2.prop_id FROM table1 t1 LEFT JOIN table2 t2 ON t1.id=t2.tb1_id AND t2.prop_id = 10 WHERE t2.prop_id IS NULL[/SQL]
Всё работает замечательно, но медленно при количестве записей в таблицах ~ 10 000
Можно ли как-нибудь по другому это сделать?
P.S. DELETE FROM table2 ...+ INSERT не предлагать