如何在mysql中不选择重复的行

cqoc49vn  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(263)

我有如下mysql表:

| id | seller | type |
|  1 |  345   |  AB  |
|  3 |  234   |  CD  |
|  7 |  345   |  AB  |
| 10 |  234   |  AB  |

在这个例子中,我有id 1和7的副本,我只需要返回其中一个。所以我运行以下查询:

SELECT * 
FROM table1 
ORDER BY seller, type ASC;

这给了我一张table:

| id | seller | type |
| 10 |  234   |  AB  |
|  3 |  234   |  CD  |
|  1 |  345   |  AB  |
|  7 |  345   |  AB  |

使用group by type运行以下查询时:

SELECT *
FROM (
    SELECT * 
    FROM table1 
    ORDER BY seller, type ASC
     ) AS T1
GROUP BY T1.type;

我只会得到两张唱片。
我的解决方案是用“unique\u id”创建额外的列,这将是seller和type的组合,然后按unique\u id分组。
谢谢。

fafcakar

fafcakar1#

请试试这个

SELECT * FROM `table1` group by `seller` , `type`

它的输出将是:-

+----+--------+------+
    | id | seller | type |
    +----+--------+------+
    | 10 |  234   |  AB  |
    |  3 |  234   |  CD  |
    |  1 |  345   |  AB  |
    +----+--------+------+
fcy6dtqo

fcy6dtqo2#

试试这个:

SELECT MIN(id),seller, type  
FROM table1 
GROUP BY seller, type

相关问题