我的数据库中有三个名为supplier
, materials
,的表categories
。
在材料表中,它有一个supplier id
外键,每种材料都有三个类别。我通过使用id
类别表保留了这些类别。所以材料表中有三个字段来保存类别的ID。这意味着物料表具有类别表的三个外键。
现在我的问题是如何使用 sql join 与供应商和类别表从材料表中选择数据。
我的数据库中有三个名为supplier
, materials
,的表categories
。
在材料表中,它有一个supplier id
外键,每种材料都有三个类别。我通过使用id
类别表保留了这些类别。所以材料表中有三个字段来保存类别的ID。这意味着物料表具有类别表的三个外键。
现在我的问题是如何使用 sql join 与供应商和类别表从材料表中选择数据。
你应该能够做这样的事情:
SELECT ...
FROM
supplier
JOIN materials ON
supplier.supplier_id = materials.supplier_id
JOIN categories ON (
materials.category_id1 = categories.category_id
OR materials.category_id2 = categories.category_id
OR materials.category_id3 = categories.category_id
)
但是你真的应该重新考虑你在materials
和之间的连接方式categories
。这看起来像一个常规的多对多关系,可以由这两个表之间的“联结”(又名“链接”)表表示。这将允许您对每种材料拥有无限的类别。