我有以下查询,并尝试使用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
有什么想法吗?
由于
答案 0 :(得分:3)
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
答案 1 :(得分:1)
DISTINCT
适用于SELECT
子句中的每一列,而不仅仅是一列。如果其中一列具有不同的值,则该行被视为不同,并作为另一行返回。在您的查询中,您包含'PHYSICAL_ASSET_ID',其中每行具有不同的值,这就是您获得多行的原因。