我在ms sql server中创建了三个表,如Product,Brands和ProductBrands 这些表包含以下数据
产品(PId - PName)
品牌(BId - BName)
ProductsBrands(PBId - PId - BId)
...
...
现在我必须从表格中获取以下场地
基本上我必须获取分配给产品的所有品牌
请帮帮我!!!我是新手
答案 0 :(得分:3)
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
看,这是否是您正在寻找的。 p>
答案 1 :(得分:2)
如果我的理解是正确的:(获取分配给产品的所有品牌)
select BName from Brands where BId in
(select distinct Bid from ProductsBrands where PId = (select PId from Products where PName = @input))
答案 2 :(得分:2)
首先你可能不需要" PBid" " ProductBrand"的字段相反,您可以使用复合主键作为主键" PId,BId "。
这是SQL代码。
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,bid)和 品牌(bid,bname)