我是Mysql的新手,我有一个复杂的问题: 我在这个表中有一个带“Shops”名称的表,有一个ShopID列。记录看起来像这样: Shop_001 Shop_002 ...
每个“shopID”指的是一个具有此名称的新表,例如,有一个Shop_0001名称的表。在此表中有“partnumber”列,表示本店中可用的部件。
我将特定的部件号发送到sql server,我想检查“Shops”表中的所有商店,并在“Shop_xxxx”表中返回具有此特定部件号的行。 不幸的是我不知道如何开始这个。有人可以帮我提一些指示或其他任何内容吗?
答案 0 :(得分:1)
你正在寻找多对多的关系。所以你只需要3张桌子
1表是商店列表 1表是产品清单 和1表是哪些商店有哪些产品的列表。像这样
table1
id|shops
------
1 shop1
2 shop2
3 shop3
table2
id|products
------
1 prod1
2 prod2
3 prod3
4 prod4
5 prod5
table3
id|shop_id|prod_id
-------------------
1 2 3
2 2 1
3 2 2
4 1 3
5 1 4
6 1 5
7 3 2
因此,每次将产品添加到商店时,都会在表3中添加一个条目。这将允许您按商店或产品查询,您只需要3个表。
谷歌查询了多对多的关系,了解如何获取shop1的产品列表或有产品4的商店列表。