我有两张桌子,例如:
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是主键。
答案 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关键字之前的表中。