我有一个查询与Union-Statement
,我检索所有UserIds
它们存在于table
订单Requester
& Provider
Column
。删除,声明与联盟将无法正常工作
SELECT Requester
FROM Orders
UNION
SELECT Provider
FROM Orders
This query yields some 7000 results in under a second.
现在我有一个名为 'Persons
',其中那些UserIds
是linked to the persons data
表。 使用上面的查询我想清理这个表,只保留上面的union-statement结果中存在的UserIds。
所以,我提出以下删除语句:
DELETE FROM
Persons
WHERE
UserId NOT IN(
SELECT Requester
FROM Orders
UNION
SELECT Provider
FROM Orders
)
然而,这个查询拒不执行(即使5分钟后等待)。什么可能是我的查询失败的原因?我不允许在子查询中使用UNION
作为语句吗?
注: 以下MySQL DELETE FROM with UNION subquery by IN condition没有解决它对我来说。
将'delete from'替换为'select * from'会发生什么?另一种方法 - 将联合查询的结果存储在临时表中,并在'删除'查询中使用它。 – 2014-10-30 10:33:48
慢下来。但产生的结果。难道是因为我过度使用'In'语句? – User999999 2014-10-30 10:36:21