2013-10-14 95 views
-2

我是一个新的Mysql,并且我有一个复杂的问题: 我在此表中有一个带有“Shops”名称的表有一个ShopID列。记录如下所示: Shop_001 Shop_002 ...Mysql从另一个表记录中找到一个表,并在此表中找到特定记录

每个“shopID”都是指具有此名称的新表,例如有一个带有Shop_0001名称的表。在这个表格中有“partnumber”栏,它是指这个商店中可用的零件。

我发送一个特定的零件号码到sql server,我想检查“商店”表中的所有商店,并返回具有此特定零件编号的“Shop_xxxx”表中的行。 不幸的是我不知道我该如何开始。任何人都可以帮助我提供一些指导或任何其他事情吗?

+0

给我们的样本数据,而不是文本的解释 – user4035

+2

SQL拨弄你的这个设计听上去有缺陷。你不应该为每家商店都有一张新桌子。你应该有一张桌子和所有商店的所有零件,并且该零件表中的每一行都应该有一个shopID以指明该零件属于哪个商店。 我想你应该找一张表格的基本数据库教程设计和简单的表格关系(根据您的情况,这可能是一对多关系或多对多关系)。 –

+0

问题是相同的部分可以在许多商店这是为什么我认为我不能在一个表中处理这个问题。 – Zsoca

回答

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张桌子。

谷歌查询多为如何获得产品列表shop1或有product4的等店铺列表许多关系

+0

这是一个更好的方式来做到这一点。如果你用最初的思维方式来实现你的设计(在你的原始问题中),那么你将在后来的道路上处于一个受到伤害的世界。 – Jonathan

相关问题