sql查询中的问题

时间:2010-12-04 08:08:18

标签: sql

我有两个名为customeritems的表。

使用单个查询,我希望获得custidcustomername custid='Custid1'itemid custid='Custid1'

的所有custidcustomer

如何构建此查询? custiditems表的主键。 custidcustid 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}}

2 个答案:

答案 0 :(得分:0)

你的问题不太清楚 - 你真正想要的是什么?

您所拥有的JOIN将列出所有客户customer.custidcustid1的商品。但这似乎不是你想要的......

您是否正在寻找具有特定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 端