2014-10-27 56 views
0

我試圖查詢產品是否有重複項,但每個重複項只有一行。我也希望每個條目都能顯示有多少人喜歡它。這是我迄今爲止的,但它有很多錯誤。值得讚賞的是如何精簡和排除故障。查找重複項(一行/ ea)並列出每個查找代碼的重複項數

SELECT p1.id AS product_id, 
p1.lookup_code AS product_lookup_code, 
p1.name AS product_name, 
p2.id AS duplicate_id, 
p2.lookup_code AS duplicate_lookup_code, 
p2.name AS duplicate_name, 
COUNT(*) (FROM products AS p1 INNER JOIN products AS p2 ON p1.lookup_code = p2.lookup_code 
INNER JOIN items ON p1.id = items.product_id 
WHERE p1.id != p2.id 
AND items.available = true 
AND items.visible = true 
AND items.unlisted = false) 
HAVING COUNT > 1 LIMIT 5000 

回答

0
SELECT p.id, p.lookup_code, p.name, t.duplicate_count from products p INNER JOIN (
    SELECT count(id) as duplicate_count, lookup_code from products GROUP BY lookup_code HAVING count(id) > 1 
) t on t.lookup_code = products.lookup_code;