我有这3个表+数据:
项目:itemId,itemName
数据:1,我的第一项
类别:catId,catName
数据:1,我的猫一个。 2,我的猫两个
地图:mapId,itemId,catId
当您在“我的猫一”类别中包含“我的第一项”项时,您将[1,1,1]插入地图中。当您将“my item one”添加到“my cat two”时,将[2,1,2]插入地图中。现在让我们说改变主意,只想要“我的猫二”中的项目。这意味着我们需要知道项目不再属于哪些类别,并从地图中删除关联。这样做的最有效步骤是什么? (我正在寻找一种能够超越这个微不足道的例子的解决方案。)
答案 0 :(得分:3)
假设您已经获得了“我的猫咪2”的类别ID和“我的项目1”的项目ID:
DELETE FROM MAP WHERE ItemID = @MyItem1Id
AND CatID <> @MyCat2Id
如果您有一组要保留该项目的类别,您可以:
答案 1 :(得分:0)
如果您确定某个项目只能在新类别中,则以下内容应该有效:
DELETE
M
FROM
Map M
WHERE
M.itemid = @item_id AND
M.catid <> @new_cat_id