2014-04-05 49 views
0

因此,我尝试使用以下SQL语句从相对较小的数据库返回结果。我检查了数据库重复的条目,但所有条目都不同。代码如下:SQL查询时出现重复结果

SELECT * 
    FROM cds 
     JOIN releases 
     ON cds.cd_id = releases.cd_id 
     JOIN bands 
     ON releases.band_id = bands.band_id 
WHERE position = '1' 
     AND 
     band_name = 'Prodigy'; 

而且这一个...

SELECT title, position 
    FROM cds INNER JOIN releases ON cds.cd_id = releases.cd_id 
    WHERE position = '1' 
    AND band_id = '3' 

任何理由,为什么我得到重复的结果返回?

回答

0

试试这个:

SELECT DISTINCT 
    title, position 
FROM cds INNER JOIN releases ON cds.cd_id = releases.cd_id 
WHERE position = '1' 
AND band_id = '3' 

,做与上面的查询相同。只要确保你只有SELECT你实际需要的列。

您可以运行这些查询,看看为什么你的重复数据

SELECT 
    cd_id, 
    COUNT(1) AS Amount 
FROM [releases] 
GROUP BY cd_id 
HAVING COUNT(1) > 1 
ORDER BY Amount DESC, cd_id ASC; 

,在该查询来了,是你的重复数据原因的一切。

+0

是的,这很好。任何想法为什么它发生了? – JRD91

+0

@ JRD91 - 我更新了答案。如果您运行第二个查询,您应该从[releases]中找到导致重复数据的cd_id。如果它不返回任何内容,请尝试在[cds]上运行相同的事情。 – Trafz