我有两个名为customer
和items
的表。
使用单个查询,我希望获得custid
和customername
custid='Custid1'
和itemid
custid='Custid1'
。
custid
和customer
如何构建此查询? custid
是items
表的主键。 custid
是custid
table的外键。
我写了这个查询,它没有列出所有create procedure spGetCustomer
as
begin
select a.custid, a.custname,b.itemid
from customer a inner join items b on a.custid = b.custid
WHERE b.custid='custid1'
end
,只列出{{1}}三次......这是我的查询:
{{1}}
答案 0 :(得分:0)
你的问题不太清楚 - 你真正想要的是什么?
您所拥有的JOIN将列出所有客户customer.custid
为custid1
的商品。但这似乎不是你想要的......
您是否正在寻找具有特定custid
??的所有客户 - 有或没有物品?尝试这样的事情:
SELECT
c.custid, c.custname, i.itemid
FROM
dbo.customer c
LEFT OUTER JOIN
dbo.items i ON c.custid = i.custid
WHERE
c.custid = 'custid1'
如果items.custid
确实是customer
表中的外键,则不应该有custid = custid1
的任何未加入现有客户的项目。< / p>
答案 1 :(得分:0)
如果你的问题实际上与你如何传递参数有关,你的过程应该是:
创建过程spGetCustomer(@ custid1 varchar(100))
如
开始
选择a.custid,a.custname,b.itemid
来自客户a.custid = b.custid的内部联接项目b
在哪里b.custid =@custid1
端