2014-06-04 215 views
0

我已經嘗試了多種方法來擺脫查詢結果中的所有重複項,但都無效。我試過DISTINCTGROUP BYSQL刪除INNER JOIN中的重複項

DISTINCT不會做任何事情,GROUP BY我不斷收到錯誤。

我的查詢:提前

SELECT   
    categorie.categorie_id AS categorie, 
    categorie.categorie_nummer, 
    categorie.naam, 
    product.product_id, product.product_naam, 
    foto.foto_id, foto.foto1, 
    item.prijs, item.item_id 
FROM    
    ((((((categorie 
INNER JOIN 
    behoort_tot ON categorie.categorie_id = behoort_tot.categorie_id) 
INNER JOIN 
    product ON behoort_tot.product_id = product.product_id) 
INNER JOIN 
    heeft ON product.product_id = heeft.product_id) 
INNER JOIN 
    foto ON heeft.foto_id = foto.foto_id) 
INNER JOIN 
    is_een_1 ON product.product_id = is_een_1.product_id) 
INNER JOIN 
    item ON is_een_1.item_id = item.item_id) 
WHERE   
    (categorie.categorie_id = ?) 

感謝

+1

單獨'DISTINCT'應該工作。 – woot

+1

你可以添加你正在得到的結果嗎?如果沒有'DISTINCT'子句? – brazilianldsjaguar

+0

感謝您的快速反應,我想上傳我的結果圖像,但它不會讓我下10代表。但是輸出完全相同,有或沒有DISTINCT – user3708994

回答

0
WITH TEMP AS 
     (

    SELECT categorie.categorie_id AS categorie, categorie.categorie_nummer, categorie.naam, 
    product.product_id, product.product_naam, foto.foto_id, foto.foto1, item.prijs, item.item_id, 
    ROW_NUMBER() 
     OVER (PARTITION BY categorie.categorie_id ORDER BY categorie.categorie_id) As ROW_NO 


FROM   ((((((categorie INNER JOIN 
         behoort_tot ON categorie.categorie_id = behoort_tot.categorie_id) 
INNER JOIN 
         product ON behoort_tot.product_id = product.product_id) INNER JOIN 
         heeft ON product.product_id = heeft.product_id) INNER JOIN 
         foto ON heeft.foto_id = foto.foto_id) INNER JOIN 
         is_een_1 ON product.product_id = is_een_1.product_id) INNER JOIN 
         item ON is_een_1.item_id = item.item_id) 

) 
SELECT * FROM TEMP WHERE ROW_NO = 1; 

我看到你試圖理清使用categories.Try this.I`m使用ROW_NUMBER函數分類整理並假設你正在使用SQL服務器

+0

我正在使用Access數據庫,它在Access中也能工作嗎? – user3708994

+0

我不敢確定。反正試一試 –

+0

似乎不起作用 – user3708994