Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据另一个表中的记录删除表1中的行的sql语句_Sql - Fatal编程技术网

根据另一个表中的记录删除表1中的行的sql语句

根据另一个表中的记录删除表1中的行的sql语句,sql,Sql,我得去查t1和t2表。 我想 删除t1中的记录,其中 t1.c1=t2.c1和t1.c2=t2.c2和t1.c3=t2.c3和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 t

我得去查t1和t2表。 我想

删除t1中的记录,其中

t1.c1=t2.c1和t1.c2=t2.c2和t1.c3=t2.c3和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' 
它不会返回我要删除的记录


有关如何修复此查询的任何提示?要在oracle工作

您已经非常接近了!,只需在delete关键字之后添加要删除的表名

我明白了

 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'

是的,因为如果不这样做,您要删除的表中的内容将不明确。t2也可以。我明白了,但是我的顶部问题中的select语句第二次查询不应该返回要删除的行吗?它不起作用。。它在命令行中给了我错误:1列:9错误报告:SQL错误:ORA-00933:SQL命令未正确结束00933。00000-SQL命令没有正确结束,我想这可能是因为oracle不支持join for delete语句..:但我不知道怎么做
 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'