1

テーブルt1とt2が必要です。したい

t1 のレコードを削除します。

t1.c1 = t2.c1 AND t1.c2 = t2.c2 AND t1.c3 = t2.c3 AND t2.c4 = 「何か」

私は次のようなことができると思いました:

delete
FROM table1 t1
INNER JOIN table2 t2
 on 
 (t1.c1 = t2.c1 
  AND t1.c2 = t2.c2 
  AND t1.c3 = t2.c3)
 where t2.c4 = 'something'

しかし、それを行う前に、私はやろうとしています

select *
FROM table1 t1
INNER JOIN table2 t2
 on 
 (t1.c1 = t2.c1 
  AND t1.c2 = t2.c2 
  AND t1.c3 = t2.c3)
 where t2.c4 = 'something' 

削除したいレコードが返されません。

このクエリを修正する方法に関するヒントはありますか? (オラクルで働くため)

4

2 に答える 2

2

DELETEあなたは非常に近いです!、キーワードの後に​​削除したいテーブル名を追加するだけです

DELETE  t1   -- <<==== HERE
FROM    table1 t1
        INNER JOIN table2 t2
            ON  t1.c1 = t2.c1 AND 
                t1.c2 = t2.c2 AND 
                t1.c3 = t2.c3
 WHERE  t2.c4 = 'something'
于 2013-03-07T16:49:29.213 に答える
0

わかった!!

 DELETE  
    FROM    table1 t1
    WHERE EXISTS
      SELECT * 
      from table2 t2
      where  t1.c1 = t2.c1 AND 
            t1.c2 = t2.c2 AND 
            t1.c3 = t2.c3 AND
            t2.c4 = 'something'
于 2013-03-07T19:45:00.613 に答える