SQL内部联接返回多个值

时间:2017-06-07 07:56:02

标签: sql

我有2个表,其中包含以下值:

tbl_a1

ID  Prod_Code   Prod_Sub    Prod_Note   Rec_Name    Prod_Qty    Prod_Flow   Rec_Mat_Act
306     111     1   falcon 1128     Stab120     25  5000    22623.17
307     111     2   falcon 1128     Stab120     25  5000    22635.52
308     111     3   falcon 1128     Stab120     24  5000    21623.89
309     111     4   falcon 1128     Stab120     27  5000    24439.78
311     111     5   falcon 1128     Stab120     27  5000    24402.79
313     111     6   falcon 1128     Stab120     24  5000    21582.37
315     111     7   falcon 1128     Stab120     14  5000    12654.76
316     111     8   falcon 1128     Stab120     27  5000    24447.1
317     111     9   falcon 1128     Stab120     25  5000    22613.14
318     111     10  falcon 1128     Stab120     23  5000    20759.74

tbl_c1

ID  Prod_Code   Prod_Sub    Prod_Note   Rec_Name    Prod_Qty    Prod_Flow   Rec_Mat_Act
226     111     1   falcon 1128     Stab120     25  5000    1604.125
227     111     2   falcon 1128     Stab120     25  5000    1601.498
228     111     3   falcon 1128     Stab120     24  5000    1645.118
229     111     4   falcon 1128     Stab120     27  5000    1740.419
231     111     5   falcon 1128     Stab120     27  5000    1774.387
233     111     6   falcon 1128     Stab120     24  5000    1674.871
235     111     7   falcon 1128     Stab120     14  5000    918.7184
236     111     8   falcon 1128     Stab120     27  5000    1740.139
237     111     9   falcon 1128     Stab120     25  5000    1633.708
238     111     10  falcon 1128     Stab120     23  5000    1536.74
  • e是唯一的,并出现在两个表中。
  • Prod_Code是唯一的生产编号Prod_Sub是批号(prod_code可以有多个批号)
  • rec_mat_act是生产中实际使用的材料

我正在尝试获取包含所有唯一prod_codes及其prod_sub和使用过的材料的列表,但我得到了重复的结果。

我正在使用以下查询:

SELECT      a1.Prod_Code, 
            a1.Prod_Sub, 
            a1.Prod_Note, 
            c1.Rec_Mat_Act 
FROM        Tbl_Aggr1 as a1 INNER JOIN  Tbl_Cem1 as c1 
            on c1.Prod_Code = a1.Prod_Code  
WHERE       a1.Prod_Code = '111'

使用DISTINCT中的SELECT对我没有帮助,GROUP BY也没有帮助,但也许我使用它都错了。

1 个答案:

答案 0 :(得分:0)

如果你在select中添加一个distinct,它应该从第一个表中获取不同的prod_code,然后将所有结果附加到它,即:

select distinct
    a.prod_code, a.prod_sub, c.rec_mat_act
from tbl_a1 a
inner join tbl_c1 c on a.prod_code = c.prod_code
where a.prod_code = 111