当我使用join时Disticnt id

时间:2017-02-12 14:17:57

标签: sql-server sql-server-2005

我需要消除重复的ID。我已经尝试过下面的代码了,但是当我使用它时它并没有出现任何东西。

Select disticnt i.id,b.barcode,i.code,i.name,i.price 
from inventory i 
join barcodes b on i.id=b.id

问题是我得到相同的ID因为我有很多不同的条形码固定在一个id。如何消除重复的ids

Here is an image of my data

1 个答案:

答案 0 :(得分:0)

问题是条形码表可能为库存表中的每个ID都有多行。为了从库存表中只获取一条记录,您必须首先确定要为每个具有多个条形码的ID获取哪些条形码。一种方法是使用group by with max或min:

SELECT i.id,
       MAX(b.barcode) as barcode,
       i.code,
       i.name,
       i.price 
FROM inventory i 
JOIN barcodes b on i.id=b.id
GROUP BY i.id, i.code, i.name, i.price