MySQL连接时怎么去重
时间 : 2023-03-09 06:45:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
MySQL连接时去重可以使用DISTINCT关键字或GROUP BY语句实现。
1. 使用DISTINCT关键字
在查询语句中使用DISTINCT关键字可以去掉重复的行。例如:
SELECT DISTINCT column_name FROM table_name;
其中column_name是要查询的列名,table_name是要查询的表名。
例如,我们有一个students表,包含学生名字和性别两列,其中包含重复数据:
| name | gender |
| ---- | ------ |
| Tom | Male |
| Tom | Male |
| Mary | Female |
要查询不重复的学生名字,可以使用以下语句:
SELECT DISTINCT name FROM students;
查询结果为:
| name |
| ---- |
| Tom |
| Mary |
此时结果集中只包含不重复的学生名字。
2. 使用GROUP BY语句
在查询语句中使用GROUP BY语句可以将结果集按照某列分组,并对每组进行聚合操作。
例如,我们有一个products表,包含商品名称、价格和库存量三列,其中包含重复数据:
| product_name | price | stock |
| ------------ | ----- | ----- |
| iPhone X | 999 | 100 |
| iPad Pro | 799 | 50 |
| iPhone X | 999 | 150 |
| MacBook Pro | 1499 | 20 |
要查询每种商品的总库存量,可以使用以下语句:
SELECT product_name, SUM(stock) FROM products GROUP BY product_name;
查询结果为:
| product_name | SUM(stock) |
| ------------ | ---------- |
| iPhone X | 250 |
| iPad Pro | 50 |
| MacBook Pro | 20 |
此时结果集中按照商品名称分组,并计算每组的库存总量。
需要注意的是,如果在GROUP BY语句中只指定了部分列,则结果集中可能会有重复的行。例如:
SELECT product_name, price, SUM(stock) FROM products GROUP BY product_name;
查询结果为:
| product_name | price | SUM(stock) |
| ------------ | ----- | ---------- |
| iPhone X | 999 | 250 |
| iPad Pro | 799 | 50 |
| MacBook Pro | 1499 | 20 |
此时结果集中包含重复的iPhone X商品信息,因为其价格相同。如果想要去除重复行,可以在查询语句中使用DISTINCT关键字,例如:
SELECT DISTINCT product_name, SUM(stock) FROM products GROUP BY product_name;
查询结果为:
| product_name | SUM(stock) |
| ------------ | ---------- |
| iPhone X | 250 |
| iPad Pro | 50 |
| MacBook Pro | 20 |
此时结果集中只包含不重复的商品信息。
上一篇
mysql怎么写配置文件
下一篇
mysql小海豚怎么安装
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章