0

Rent2 という名前の一時テーブルを作成して、クライアントが登録したすべての重複モジュールをデポジットし、一時テーブルを削除する前に内部結合ステートメントを削除します。

ただし、これが完了した後は常に重複が残ります。ここで何が間違っていますか?

CREATE  TABLE IF NOT EXISTS `tblRent2` (
  `IdRent` INT(11) NOT NULL)
ENGINE = InnoDB;

INSERT INTO tblRent2 (SELECT IdRent FROM tblRent WHERE IdModule = 1 GROUP BY IdClient HAVING COUNT(IdModule) > 1);
INSERT INTO tblRent2 (SELECT IdRent FROM tblRent WHERE IdModule = 2 GROUP BY IdClient HAVING COUNT(IdModule) > 1);
INSERT INTO tblRent2 (SELECT IdRent FROM tblRent WHERE IdModule = 3 GROUP BY IdClient HAVING COUNT(IdModule) > 1);
INSERT INTO tblRent2 (SELECT IdRent FROM tblRent WHERE IdModule = 4 GROUP BY IdClient HAVING COUNT(IdModule) > 1);
INSERT INTO tblRent2 (SELECT IdRent FROM tblRent WHERE IdModule = 5 GROUP BY IdClient HAVING COUNT(IdModule) > 1);
INSERT INTO tblRent2 (SELECT IdRent FROM tblRent WHERE IdModule = 6 GROUP BY IdClient HAVING COUNT(IdModule) > 1);
INSERT INTO tblRent2 (SELECT IdRent FROM tblRent WHERE IdModule = 999 GROUP BY IdClient HAVING COUNT(IdModule) > 1);

DELETE r.* FROM tblRent r INNER JOIN tblRent2 r2 ON 
r.idRent = r2.idRent;

SELECT * FROM tblRent2;

DROP TABLE tblRent2;

元のテーブルは次のようになります。

IdRent | IDClient  | IdModule
1      |  30       |   999
2      |  30       |   999
3      |  31       |   1
4      |  31       |   1

これらはすべて主キーです。

4

2 に答える 2