从多个关系中的查找表中分配值

时间:2012-01-18 20:22:02

标签: mysql sql many-to-many

我有以下表格:

Persons(
PersonID,
FirstName,
LastNAme)

Person_Categories(
CategoryID,
CategoryName)

Persons_PersonCategories(
PersonID,
CategoryID)

一个人可以拥有多个类别,许多人可以属于一个类别。 我希望能够从下拉菜单(Person_Categories)为人员分配类别。我编写了以下查询,如果已经为人员分配了类别,则显示数据。

SELECT Persons_PersonCategories.PrsCatID, PrsCategory
FROM Person_Categories
INNER JOIN Persons_PersonCategories
ON Persons_PersonCategories.PrsCatID = Person_Categories.PrsCatID;

我的问题:我需要从Person_Categories表中为Persons分配类别的SQL语句是什么?

非常感谢,zan

1 个答案:

答案 0 :(得分:1)

当用户从菜单列表中选择一个类别时,您可以将其分配给具有以下内容的人:

INSERT INTO Persons_PersonCategories (PersonID, CategoryID)
VALUES (<person ID>, <category ID>);

其中&lt; person ID&gt; &lt; category ID&gt; 分别代表您指定的人以及用户选择的类别。

要从给定人员中删除某个类别,您可以使用:

DELETE FROM Persons_PersonCategories
WHERE PersonID   = <person ID>
  AND CategoryID = <category ID>;

其中&lt; person ID&gt; &lt; category ID&gt; 分别代表您要删除类别的人以及用户要删除的类别。

希望这有帮助。