如何创建这些SQL表

时间:2011-09-10 05:59:37

标签: sql

我有一个“零件”表:

  • ID(PK)
  • 名称
  • 细节

如此示例零件表:

  • 1“book”“红皮书”
  • 2“桌子”“木桌”
  • 3“table”“便宜的桌子”

我想制作这些部分的“群组”,例如,“正常”群组将是一本书和桌子,其中“额外”群组将成为一本书和桌子。

你可以做“SELECT * FROM'groups'WHERE name ='normal'”。我该如何做到这一点?

希望我解释得这么好(谷歌搜索“群组”因关键字的SQL群而失败)

1 个答案:

答案 0 :(得分:2)

您需要第二个表来定义组以及属于它的项目。

因此,在这种情况下,您需要一个名为“Groups”的表,其属性为

  • GroupName(PK)
  • ItemID(PK)(来自部件的外键)

(上面列出的外键约束不是严格必要的,而是主键 确实必须是GroupName和ItemID。如果它只是一个或另一个,表将无法正常工作。)

然后条目将是

  • “normal”1
  • “normal”3
  • “extra”1
  • “extra”2

然后你想使用像

这样的查询
SELECT * FROM Groups, Parts WHERE Groups.ItemID = Parts.ID

SELECT * FROM (Groups JOIN Parts ON Groups.ItemID = Parts.ID)