表1
id type name parent group_id
1 special name1 0 21
2 Group name2 1 19
3 Group name3 1 22
4 special name4 0 89
表2
id version mcs user right_id
1 0 15 27 3
2 0 15 27 4
table2中的right_id引用table1中的id 我想要的是删除table1中的行,其中name = name2和name3。 怎么做到这个?
答案 0 :(得分:0)
使用下面提到的查询从两个表中删除所需的数据
delete * from table1 as a join table2 as b on a.id=b.right_id where
a.name in ('name2','name3')
答案 1 :(得分:-1)
除了上面的答案之外,如果你想删除父表table1中的任何行,那么应该删除table2中的一行,其中right_id的值与table1中id的值相同,那么你需要使用ON在table2的创建脚本中删除CASCADE子句。
请参阅此http://www.techonthenet.com/oracle/foreign_keys/foreign_delete.php
答案 2 :(得分:-1)
您可以使用以下查询删除两个表中的记录:
DELETE a,b FROM table2 AS a
INNER JOIN table1 AS b ON a.right_id = b.id
WHERE b.name IN ('name1', 'name2');
答案 3 :(得分:-2)
DELETE FROM table1 AS A
INNER JOIN table2 AS B ON A.ID = B.RIGHT_ID
WHERE A.NAME IN (name1, name2)