我有一個查詢與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