【发布时间】:2014-06-12 19:01:18
【问题描述】:
我需要连接两个表
tbl_1
sno productName productQuantity id
tbl_2
sno productName remainingQuantity id
我的存储过程代码是
@id
as
begin
select a.sno,a.productName, a.productQuantity,b.remainingQuantity
from tbl_1 a join tbl_2 b
on a.id=b.id where a.id=@id
end
其显示结果如tbl_1 * tbl_2(cross-join) 行数
例如
如果 tbl_1 和 tbl_2 有 2 行,则显示 4 行
我需要 2 行
我在哪里出错了?谢谢
【问题讨论】:
-
您的问题在这里:
where id=@id。 SQL 不知道在哪个表中查找@id变量,因为它同时存在于tbl_1和tbl_2中。您还需要在那里为 id 起别名。 -
我试过但显示相同的结果
-
两个表的id列是什么关系?
-
两个表的 id 值相同
-
在这种情况下, distinct 会得到你想要的结果。看看@valentine petkov 提供的答案。
标签: sql sql-server join