2015-11-29 101 views
0

我在Opencart數據庫中有許多類別和父類相同的名稱(重複項)。需要找到他們全部。這是我的查詢:MySQL GROUP BY HAVING沒有任何返回

SELECT * 
FROM 
    (SELECT `oc_category`.category_id, 
      `oc_category`.parent_id, 
      `oc_category_description`.name 
     FROM `oc_category`, `oc_category_description` 
     WHERE `oc_category`.category_id = `oc_category_description`.category_id 
    ) cats 
GROUP BY `cats`.parent_id, `cats`.name 
HAVING COUNT(*) > 1 

但是,此查詢不會返回任何內容。請告訴我,如果我錯了。

+1

你可以檢查內部查詢是否實際返回重複的cats.parent_id,cats.name? – Roberto

+0

是的。它返回的許多重複只有category_id – GrinderZ

+0

不同,看起來你的查詢沒有錯,你能提供show create table info和一些數據集嗎? –

回答

1

與查詢沒有問題,它的工作,檢查了這一點:

http://sqlfiddle.com/#!9/3d170/4

請與小提琴和與不產生記錄的數據填充它,並把它添加到你的問題。

+0

http://sqlfiddle.com/#!9/757a47/1它確實有效。 但不是在PhpMyAdmin。 現在我注意到:MySQL服務器版本 - 5.1.73 – GrinderZ

+0

我會三重檢查內部查詢在我的服務器中返回的數據,可能是'echo'或'print'來調試,否則這將是最大的bug非常成熟的產品... – Roberto

+0

呃。非常感謝Roberto和InoS Heo! 我發現問題:名稱不一樣。這些類別名稱看起來是一樣的,但是: SELECT MD5(名稱) FROM'oc_category_description' WHERE CATEGORY_ID = 1682 OR = CATEGORY_ID 1686 返回兩個不同的散列: ff75716d820ec260fabc3cc09f97ca60 dd03260beb77782496d106be5c0d9baf 感謝所有! – GrinderZ