我有一個名爲「通道」具有以下屬性表。減少MySQL數據庫elminiate重複
CREATE TABLE `lane` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`origRegion` varchar(45) NOT NULL,
`origState` char(2) NOT NULL,
`destRegion` varchar(45) NOT NULL,
`destState` char(2) NOT NULL
PRIMARY KEY (`id`)
)
該表中有以下列的重複行:origState,origRegion,destState,destRegion。我希望能夠選擇所有行JOINED到min(id)是第一次出現的行數。
例如,具有數據:
1 ALL MA ALL OH 2 ALL MA ALL OH 3 ALL MA ALL OH
和一個類似的SQL(其射門所有重複的行):
select l.*, l2.count, l2.minId from tmpLane l
JOIN (SELECT id, min(ID) as minId from tmpLane
GROUP BY origRegion, origState, destRegion, destState) l2 on l.id = l2.id;
結果(注意最後的計數和minId) :
1 ALL MA ALL OH 3 1 2 ALL MA ALL OH 3 1 3 ALL MA ALL OH 3 1
請注意,上面使用的查詢是解決方案的改編here(在這種情況下不工作)
是最後一個結果顯示出你想得到的結果還是錯誤結果?請出示什麼是預期的結果 – Roberto
那會刪除所有的DUP查詢工作更適合您? – Bohemian
顯示的結果是我所期望的。我實際得到的只是一排。刪除查詢將不起作用。 –