首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从有一对多关系的表中获取数据?

如何从有一对多关系的表中获取数据?
EN

Stack Overflow用户
提问于 2014-11-07 04:53:28
回答 3查看 70关注 0票数 1

我在ms中创建了三个表,如ProductBrands和ProductBrands--这些表包含如下数据

产品(PId - PName)

  • 1-移动电话
  • 2- T.V .
  • 3-A.C

品牌(BId - BName)

  • 1-三星
  • 2-索尼
  • 3- L.G .

ProductsBrands (PBId - PId - BId)

  • 1-1
  • 2-1-2
  • 3-1-3
  • 4-2-1
  • 5-2-3

..。

..。

现在我得从桌子上拿出下面的

  • 产品Id
  • PName
  • BId
  • BName

基本上我得把分配给一个产品的所有品牌都拿来

请帮帮我!我对此很陌生

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-07 05:01:38

代码语言:javascript
复制
SELECT  P.PId ,
        P.PName,
        B.BId,
        B.BName
FROM    Products P
JOIN    ProductsBrands  PB On PB.PId  = P.PId 
JOIN    Brands  B ON B.BId  = PB.BId 

看,这是不是你要找的。

票数 3
EN

Stack Overflow用户

发布于 2014-11-07 05:02:07

如果我的理解是正确的:(获取分配给某一产品的所有品牌)

代码语言:javascript
复制
select BName from Brands where BId in 
(select distinct Bid from ProductsBrands where PId = (select PId from Products where PName = @input))
票数 2
EN

Stack Overflow用户

发布于 2014-11-07 05:06:22

首先,您可能不需要"PBid“字段用于"ProductBrand”表,而是可以使用复合主键作为主键"PId,BId“。

这是SQL代码。

代码语言:javascript
复制
Select PId, PName, BId, BName
from product p , brand b , productbrands pd
where p.pid = pd.pid and b.bid = pd.bid

请记住,如果您的一个产品属于一个和唯一一个品牌,那么您可以将其减少到只有两个表。

ex -product(pid,pname,出价)和品牌(出价,bname)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26794302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档