2012-11-07 215 views
0

我正在處理有一些重複數據的數據庫,並試圖編寫一個查詢來解決問題數據。該表看起來像:mysql查找與匹配值不匹配的匹配鍵

lpID, pID, pName, etc... 

其中lpID是此表的唯一ID,pID是整個數據庫的共享ID。我有這樣的拉匹配PID值(16K):

SELECT lp.pID, group_concat(lp.lpID) as lpIDs, group_concat(lp.pName) as names 
FROM lp 
INNER JOIN (
    SELECT pID 
    FROM lp 
    GROUP BY pID 
    HAVING count(pID) > 1 
) dup ON lp.pID = dup.pID 
group by lp.pID 

其中一期工程,但現在我想擴展它,使得它僅會被那些不匹配PNAME值938。沒有任何我嘗試似乎工作。我怎樣才能做到這一點?

回答

1

你試過

SELECT lp.pID, group_concat(lp.lpID) as lpIDs, group_concat(lp.pName) as names 
FROM lp 
INNER JOIN (
    SELECT pID, COUNT(distinct pName) AS Names 
    FROM lp 
    GROUP BY pID 
    HAVING count(pID) > 1 AND Names > 1 
) dup ON lp.pID = dup.pID 
group by lp.pID 
+0

真棒,謝謝。我仍然有很多要學習與MySQL ... – baiano