繁体   English   中英

SQL Delete与另一个表的关系

[英]SQL Delete with relation to another table

我有两个表,例如:

具有GUID,ProgKey,UserKey,ProgName列的TableA。

具有GUID,AppKey,ModeName列的TableB。 外键: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是主键。

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

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

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

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关键字之前的表中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM