有个需求,一直没有解决,在google上找了半天,给出的方案没有一个能用了,最后鬼使神差搞定了。
是这样的,假设一个表:
id f_id value
1 2 a
2 2 b
3 5 c
4 9 c
5 9 a
6 6 d
id f_id value
1 2 a
2 2 b
3 5 c
4 9 c
5 9 a
6 6 d
id是主键,f_id是外键,我需要获得不重复的外键f_id的数据,如果用group by 或者distinct很容易搞定
select f_id from table group by f_id
select distinct f_id from table
但如果再想在结果中得到id值的话,不管怎么都会乱。比如我想在结果中用id进行排序,诸如”select distinct f_id, id from table order by id desc”完全白费。在google上看了大量的例子,发现需要在select中对id做手脚,让mysql知道除了f_id外,对id应该进行如何的操作。诸如Max, Min, Avg,Sun..都是可以的,于是变成以下的代码就搞定了……
select f_id, max(id) as id from table group by f_id order by id desc
搞定,网上有个文章很接近答案,但是他没有”as id”,导致在我的mysql中执行结果有误,呵呵。
分享到:
相关推荐
在SQL查询中,有时我们需要获取数据库表中的不重复数据,MySQL提供了`DISTINCT`和`GROUP BY`两个关键字来帮助我们实现这一目标。这两个关键字在处理重复数据时有着不同的应用场景和使用方法,让我们来深入了解一下。...
单表的唯一查询用:distinct多表的唯一查询用:group bydistinct 查询多表时,left join 还有效,全连接无效,在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余...
今天,我们将深入探讨如何使用`DISTINCT`关键字在MySQL中查询多条不重复记录值,这不仅是一种实用技能,也是提升数据处理效率的关键所在。 ### `DISTINCT`关键字详解 `DISTINCT`关键字在SQL查询中扮演着一个至关...
使用distinct在mysql中查询多条不重复记录值的解决办法 ...使用 distinct 在 MySQL 中查询多条不重复记录值的解决办法可以使用 group_concat 函数配合 group by 子句 或者 count 函数配合 group by 子句。
为了删除重复数据并保留最新记录(假设最新记录是ID最大的记录),可以使用`GROUP BY`配合`MAX(id)`来找到每个姓名对应的最新记录: ```sql SELECT name, class, MAX(id) AS max_id FROM test_group GROUP BY name;...
除了上述问题,MySQL还提供了其他方法来处理不重复记录,如`GROUP BY`结合`HAVING`子句,但这通常用于计算聚合函数,如计数或求和。在本场景中,结合`JOIN`操作可能是更为直接和有效的解决方案。 在实际数据库管理...
多表update sql语句总结mysql锁表和解锁语句分享MySQL中基本的多表连接查询教程MySQL表字段设置默认值(图文教程及注意细节)MySQL中使用表别名与字段别名的基本教程mysql查询表里的重复数据方法mysql 导入导出数据库...
sql 查出一张表中重复的所有记录数据 1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、...
标题“MySQL 查询重复内容只显示一条”涉及到的是在MySQL数据库中如何处理重复数据的问题。在数据分析或数据存储过程中,有时我们需要找出并处理重复的记录,只保留一条作为代表。这通常可以通过聚合函数和分组来...
- **`CONCAT_WS()`**:类似于 `GROUP_CONCAT`,但不支持聚合操作,用于连接字符串并使用指定的分隔符。 通过以上介绍,我们可以看到 `GROUP_CONCAT` 在处理分组数据时的强大能力,以及如何根据具体需求灵活运用其...
在MySQL数据库中,`DISTINCT` 和 `GROUP BY` 是两个非常重要的SQL关键字,它们都可以用来处理数据的去重问题,但在实际应用中,两者的使用场景和效果有所差异。 首先,`DISTINCT` 关键字的主要作用是去除查询结果中...
当你想要获取某个字段的所有不重复值时,可以使用`SELECT DISTINCT field_name FROM table_name`。同时,如果你希望在分组后对结果进行排序,可以使用`ORDER BY`子句。`ORDER BY`默认按照升序(ASC)对结果进行排序,...
总结,MySQL提供了多种方法来查询和删除重复记录,从简单的`GROUP BY`结合`HAVING`子句,到复杂的子查询和条件删除。在实际操作中,应根据数据表的具体情况和业务需求选择合适的方法,并确保在执行删除操作前备份...
如果我们错误地使用了GROUP BY email, passwords和COUNT(*),则会得到每个组合的记录数,包括那些重复的记录。这并不是我们统计不同组合的目标结果。 在PHP中,我们通常使用mysql_num_rows()函数来获取结果集中记录...
本文实例讲述了mysql优化小技巧之去除重复项实现方法。分享给大家供大家参考,具体如下: 说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时候。毕竟咱不是专业的DB,所以嘞,只能自己弄一下适合自己去重方法了...
例如,可以使用`MIN()`或`MAX()`函数结合`GROUP BY`来选择要保留的记录。例如,如果希望保留每个`title`字段下ID最小的记录,可以这样做: ```sql CREATE TABLE bak AS SELECT title, MIN(id) AS min_id FROM ...
在MySQL数据库中,`DISTINCT` 和 `GROUP BY` 是两种用于数据去重和分组统计的SQL语句,它们虽然都可以帮助我们处理重复数据,但有着不同的应用场景和执行机制。 1. `DISTINCT` 关键字: - `DISTINCT` 主要用于去除...