TSQL Distinct 不起作用

TSQL Distinct does not work

我有以下查询,我尝试使用 DISTINCT 关键字为每个 GLOBAL_CONTENT_ID 保留唯一值。不幸的是我不能让它工作。

SELECT DISTINCT 
    CD.GLOBAL_CONTENT_ID, CD.DOWNLOAD_ID, PA.PHYSICAL_ASSET_ID
FROM 
    [CONTENT_DOWNLOAD] CD 
INNER JOIN 
    PHYSICAL_ASSET AS PA ON CD.GLOBAL_CONTENT_ID = PA.GLOBAL_CONTENT_ID
WHERE 
    CD.UPC = '00600753515501'
ORDER BY 
    CD.GLOBAL_CONTENT_ID

有什么想法吗?

谢谢

DISTINCT 关键字将确保没有重复的 记录 出现在您的结果集中。但是,如果这些记录中的值组合不同,则不能保证给定列不能在多个记录中具有重复值。

获取不同 GLOBAL_CONTENT_ID 值的一种方法是使用以下查询:

SELECT DISTINCT CD.GLOBAL_CONTENT_ID
FROM [CONTENT_DOWNLOAD] CD 
INNER JOIN PHYSICAL_ASSET AS PA ON CD.GLOBAL_CONTENT_ID = PA.GLOBAL_CONTENT_ID
WHERE CD.UPC = '00600753515501'
ORDER BY CD.GLOBAL_CONTENT_ID

DISTINCT 适用于 SELECT 子句中的每一列,而不仅仅是单个列。如果其中一列具有不同的值,则该行被视为不同并作为另一行返回。在您的查询中,您包括 'PHYSICAL_ASSET_ID' ,它对每一行都有不同的值,这就是您获得多行的原因。