2016-12-16 44 views
0

使用Select MySQL我有一個很奇怪的問題。使用Select MySQL重複輸入 - 很奇怪

  • 的MySQL服務器督促我有這樣的錯誤:#1062 - Duplicata杜冠軍 '10250' 倒拉譜號 'KEY0'(=#1062 - 重複字段 '10250' 爲重點 'KEY0')。 MariaDB 10.0.28
  • MySQL的開發服務器,我沒有錯誤MySQL 5.5
  • 這是PROD和開發一個相同的數據庫(進口PROD>開發)

下面是該查詢。但是,我已經簡化了很多。這是正常的,如果它似乎愚蠢的給你,我簡化它僅保留錯誤:

SELECT 
    (
     SELECT 
      IF(
       (
        SELECT 
         SUBSTRING(ed2.numero2, 1, 1) 
        FROM 
         ecriture_detail ed2 
        WHERE 
         ed2.ecriture_id = ed1.ecriture_id 
        LIMIT 
         0, 1 
       ) = 6, 
       SUM(1), 
       SUM(1) 
      ) 
     FROM 
      ecriture_detail ed1 
      INNER JOIN 
       compte s_c ON s_c.id = ed1.compte_id 
      INNER JOIN 
       association_detail s_ad ON s_ad.ecriture_detail_id = ed1.id 
     WHERE 
      ed1.compte_id = c.id 
      AND ed1.ecriture_id = e.id 
    ) AS amount, 
    c.id AS c_order 
FROM 
    compte c 
    INNER JOIN ecriture_detail ed ON 
     c.id = ed.compte_id AND 
     ed.date_suppression IS NULL 
    INNER JOIN ecriture e ON 
     ed.ecriture_id = e.id 
    LEFT JOIN association_detail ad ON 
     ad.ecriture_detail_id = ed.id 
    LEFT JOIN association a ON 
     a.id = ad.association_id 
WHERE 
    c.activite_id IN("66", "67", "68", "69", "144") AND 
    SUBSTRING(c.numero, 1, 1) = "4" AND 
    (
     a.complet != 1 
     OR a.complet IS NULL 
    ) AND 
    SUBSTRING(c.numero, 13, 6) != "000000" 
HAVING 
    amount != 0 
ORDER BY 
    c_order ASC 
  • 如果我刪除「ORDER BY c_order ASC」,它的工作
  • 如果我刪除「HAVING量!= 0" ,它的工作
  • 如果我刪除 「(a.complet!= 1或a.complet IS NULL)」 在何處,它的工作
  • 如果我刪除「INNER JOIN ASSOCIATI on_detail s_ad「在子查詢中,它正在工作
  • 但是,4在一起它不起作用。但我沒有看到任何之間的任何聯繫

你能幫我嗎?

+0

這可能是一個錯誤,請參閱[複製鍵'group_key'條目](http://stackoverflow.com/questions/26725772/duplicate-entry-for-key-group-key) – Solarflare

回答

0

雖然這個問題被記錄爲一個bug(https://bugs.mysql.com/bug.php?id=58081)有在日誌中值得注意的一點是此錯誤:

[2015年7月16日2:43] Yoseph菲利普斯

我已經看到了這使用MySQL 25年6月5日在這裏我曾在 的原因是在該集團使用的列的腐敗指數 條款(使用該索引將不會返回 行做簡單的選擇同樣的錯誤發生,使用其他指標將返回行)。

因此,也許檢查是否涉及一些索引,如果是的話,你可以嘗試重新索引它們。

+0

上述錯誤在MariaDB的任何活動版本上都不可重複,因此它不完全相同(儘管可能是變體)。所以,如果你沒有找到答案中提到的腐敗,你可以在jira.mariadb.org上報告錯誤嗎?請爲查詢中使用的表格添加「SHOW CREATE TABLE」和「SHOW INDEX IN」。如果你可以提供數據轉儲,它會更好。 – elenst

+0

謝謝;這個解決方案它不工作::( 「 SET SESSION max_heap_table_size = 536870912; SET SESSION tmp_table_size = 536870912; 」 –