我想删除t3中缺少t2中字段名称的所有记录,但前提是它们符合t1中的某个记录ID。
t1的查询:
SELECT MAX(id) FROM t1 WHERE name1 = "XXX" AND user_id = '$id'
工作正常。
t2查询:
SELECT name2 FROM t2 WHERE record IN (SELECT MAX(id) FROM t1 WHERE name1 = "XXX" AND user_id = '$id')
也可以,但需要一段时间。
但是t3查询:
DELETE FROM t3 WHERE name3 NOT IN (SELECT name2 FROM t2 WHERE record IN (SELECT MAX(id) FROM t1 WHERE name1 = "XXX" AND user_id = '$id'));
导致“#2006 - MySQL服务器已经消失”
如何在合理的时间内获取查询结果?
答案 0 :(得分:1)
我认为你可以改用连接查询吗?
select name2, MAX(t1.id)
from t2
inner join t1
on t2.t1_id = t1.id
where name1="XXX" AND user_id='$id'
答案 1 :(得分:0)
您可以使用子查询来准备要删除记录的表 - 在存储过程或类似的情况下。
当然索引;)