首页 > 解决方案 > 从两个表中获取数据不起作用 SQL

问题描述

我正在尝试根据条件从两个表中获取数据。两个表的条​​件相同,只是内容发生了变化。B 包含客户数据,A 包含产品数据

我将此代码用于存储过程

ALTER PROCEDURE [dbo].[printfatura]
    @idfatura int
AS
    SELECT DISTINCT * 
    FROM tbl_faturimi b, tblfaturimi_details a
    WHERE b.ID_FATURES = @idfatura 
      AND a.NR_FATURES = @idfatura

如果我选择 ID =2,那么我应该取 3 行的结果与表格一样多,但我得到的是 6 行。数据重复或重复。在表中没有重复或重复的数据,但在选择查询过程中我得到重复的数据。

我应该在此代码中进行哪些更改才能使其正常工作?

谢谢大家

资料照片:https ://www.sendspace.com/file/fk6c1u

标签: sqlsql-server

解决方案


使用内部联接和 group by 子句。

SELECT A.*, B.* 
FROM tbl_faturimi A 
INNER JOIN tblfaturimi_details B 
ON A.FEATURES = B.FEATURES 
GROUP BY A.*, B.*;

希望这可以帮助。:)

ALTER PROCEDURE [dbo].[printfatura]
@idfatura int
AS
BEGIN
SELECT A.*, B.*
FROM tbl_faturimi A
INNER JOIN tblfaturimi_details B
ON A.fk_ID = B.pk_ID
GROUP BY A.SomeColumn
WHERE A.fk_ID = @idfatura
END;

推荐阅读