在Oracle数据库中,可以使用DELETE语句删除多个表中的数据,也可以使用INNER JOIN、LEFT JOIN、RIGHT JOIN等连接操作来删除多个表中的数据。
下面是一些示例:
删除两个表中相同的记录
DELETE FROM table1
WHERE EXISTS (SELECT 1 FROM table2 WHERE table1.id = table2.id);
删除两个表中不同的记录
DELETE FROM table1
WHERE NOT EXISTS (SELECT 1 FROM table2 WHERE table1.id = table2.id);
删除两个表中相同的记录,但保留一个
DELETE FROM table1
WHERE EXISTS (SELECT 1 FROM table2 WHERE table1.id = table2.id AND ROWNUM = 1);
使用INNER JOIN删除两个表中相同的记录
DELETE FROM table1
WHERE id IN (SELECT t1.id FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.id);
使用LEFT JOIN删除table1中没有匹配到table2的记录
DELETE FROM table1
WHERE NOT EXISTS (SELECT 1 FROM table2 WHERE table1.id = table2.id)
AND ROWNUM = 1;
使用RIGHT JOIN删除table2中没有匹配到table1的记录
DELETE FROM table2
WHERE NOT EXISTS (SELECT 1 FROM table1 WHERE table1.id = table2.id)
AND ROWNUM = 1;
oracle连表删除、常见的连表删除SQL
猜你喜欢
转载自blog.csdn.net/qq_45699990/article/details/129732174
今日推荐
周排行