2017-06-19 14 views
0

私はすでにそれをやり遂げる方法を考えている間に私の頭を壊しました。 現在のテーブルエントリのIDと比較する条件でクエリを作成する必要があります。テーブルから行を削除するwhere句を別のテーブルから削除する

と同様なものである:TABLE1をIDまたは場合table1.idが存在しないことが指定されていない場合

DELETE 
FROM table1 
WHERE TIMESTAMPDIFF(MINUTE, Time_ADD, now()) >= (
     SELECT del_time 
     FROM table2 
     WHERE table1.id = table2.id 
     ) 

類似クエリはサブクエリの問題その複数の値を示すエラーを生成しますテーブル1の名前が指定されています

PS私の英語のために申し訳ありません、私は間違いをした場合。

EDIT 1 例:クエリは次のようになります。

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を削除する必要があります。

+2

pls 'table1'と' table2'の 'CREATE TABLE'コマンドも投稿してください。 –

+0

Im create' CREATE query' – ZeT

答えて

0

これはあなたが

DELETE table1 
FROM table1 
INNER JOIN table2 ON table1.ID = table2.ID 
AND TIMESTAMPDIFF(MINUTE, Time_ADD, now()) >= table2.del_time 
+0

このクエリはphpMyAdminでは機能しませんでした。 「INNER JOIN」のエラー – ZeT

+0

https://stackoverflow.com/questions/652770/delete-with-join-in-mysql –

0

DELETE FROM table1 WHERE TIMESTAMPDIFF(MINUTE, Time_ADD, now()) >=

探しているものかもしれませんが、このクエリのためにあなたが1行のみを戻すために持っている必要がありますことを確認してください。

(SELECT del_time FROM table2 WHERE table1.id = table2.id)

あなたはより多くのそれをフィルタリングすることができます。

+0

phpMyAdminが表示されないため、複数の値が返されましたtable1へのリンク:サブクエリの 'table1.id' – ZeT

関連する問題