使用mysql从表中删除行

时间:2016-06-27 11:02:12

标签: java mysql

表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。 怎么做到这个?

4 个答案:

答案 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)