2014-10-27 52 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;