根据另一个表中的记录删除表1中的行的sql语句
我得去查t1和t2表。 我想 删除t1中的记录,其中 t1.c1=t2.c1和t1.c2=t2.c2和t1.c3=t2.c3和t2.c4=某物 我想我可以做一些类似的事情:根据另一个表中的记录删除表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
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'