0

重複データが含まれるデータベースを使用しており、問題のあるデータを取得するクエリを作成しようとしています。テーブルは次のようになります。

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 のみをプルするように拡張しようとしています。私が試したことは何もうまくいかないようです。どうすればそれを成し遂げることができますか?

4

1 に答える 1

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
于 2012-11-07T19:25:39.693 に答える