[英]Delete rows from table with where clause from another table
我在想如何做到時已經傷了頭。 需要使用與當前表條目的ID進行比較的條件進行查詢。
也就是說,類似於:
DELETE
FROM table1
WHERE TIMESTAMPDIFF(MINUTE, Time_ADD, now()) >= (
SELECT del_time
FROM table2
WHERE table1.id = table2.id
)
類似的查詢會產生一個錯誤,指示如果未為id指定table1,則子查詢將發出多個值;如果指定了table1名稱,則表明table1.id不存在。
PS對不起,如果我犯了一個錯誤,請說英語。
編輯1例如 CREATE Query可能看起來像:
CREATE TABLE table1(
id int identity(1,1),
some_value varchar(max),
Time_ADD datetime
)
CREATE TABLE table2(
id int,
del_time int
)
在表2中,我以分鍾為單位具有int值。 在那之后,必須刪除ID int table1。
這可能是您要尋找的
DELETE table1
FROM table1
INNER JOIN table2 ON table1.ID = table2.ID
AND TIMESTAMPDIFF(MINUTE, Time_ADD, now()) >= table2.del_time
DELETE FROM table1 WHERE TIMESTAMPDIFF(MINUTE, Time_ADD, now()) >=
確保對於此查詢,您只必須返回一行。
(SELECT del_time FROM table2 WHERE table1.id = table2.id)
您可以進一步過濾它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.