簡體   English   中英

使用另一個子表中的where子句從表中刪除行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM