与另一个表相关的SQL删除

时间:2015-02-24 16:33:20

标签: mysql sql delete-row

我有两张桌子,例如:

TableA,包含GUID,ProgKey,UserKey,ProgName列。

TableB,包含GUID,AppKey,ModeName列。外键:GUID-> TableA.GUID

我需要删除具有特定值的TableB.AppKey,但只能使用TableA.UserKey =特定值的条件。

我尝试过像这样简单的东西,但它不起作用:

Delete from TableB b, TableA a where b.AppKey=? and a.UserKey=?

试过这个,也没用:

Delete from TableB (AppKey) Select ? From TableB b, TableA a where a.UserKey=?

= appkeyValue000

= userkeyValue000

GUID是主键。

3 个答案:

答案 0 :(得分:1)

从id中的表中删除(从table2中选择id,其中y = 234)?

答案 1 :(得分:1)

您可以使用JOIN删除,这似乎是IMO最自然的方式。

DELETE TableB
FROM TableB JOIN TableA ON TableA.GUID = TableB.GUID
WHERE TableB.AppKey = <Value> AND TableA.UserKey = <OtherVal>;

答案 2 :(得分:1)

http://dev.mysql.com/doc/refman/5.0/en/delete.html

DELETE tableB FROM tableB JOIN tableA ON (tableB.GUID = tableA.GUID)
WHERE tableA.UserKey = 'userkeyValue000'
AND tableB.AppKey = 'appkeyValue000'

删除发生在FROM关键字之前的表中。