2014-04-05 93 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