使用子查询更新表

时间:2013-12-09 23:06:42

标签: sql

一位特别的艺术家:我的艺术家表中的“Word”解散了。因此,我需要更新Members表。我想通过NULL'ing out(取消?)与特定艺术家相关联的ID。

我的艺术家表看起来像这样:

艺术家

AritistID,ArtistName

成员

MemberID,姓氏,名字

XRefArtistsMembers

ArtistID,MemberID

我制定了以下查询:

select a.artistid from artists a where exists
(select x.artistid from xrefartistsmembers x) in
(select m.memberid from members m);

产生一个空集。如何使与该a​​rtistband相关联的字段无效:Word?

1 个答案:

答案 0 :(得分:1)

首先,我不是子查询的忠实粉丝。您可以轻松加入,但这不是问题的范围。

目前还不清楚你要做什么。我猜你试图从Artist表中删除一个艺术家,在这种情况下你也应该删除这些引用。

您可以在XRefArtistsMembers表中的外键“ArtistID”上添加“删除级联”行为。

如果您想手动删除记录,可以通过以下查询来执行此操作..:

DELETE FROM XRefArtistsMembers WHERE ArtistID =(SELECT ArtistID FROM Artists WHERE ArtistName ='Word')