USERS u LEFT JOIN ( SELECT MAX( id ) AS id, userId FROM USER_AUTH GROUP BY userId ) AS ua ON ua.userId = u.id

先联表后,然后取出出第一个

SELECT
	SELECT
		u.id,
		row_number() over ( PARTITION BY u.id ORDER BY u.id ) AS rowno 
		USERS u
		LEFT JOIN USER_AUTH ua ON u.id = ua.userId
	) tmp 
WHERE
	rowno = 1;
SELECT
		USERS u
		LEFT JOIN USER_AUTH ua ON ua.id = (SELECT b.id FROM USER_AUTH b WHERE b.userId = u.id HAVING 1 ORDER BY b.id )

sql server 需要缓存下面写法

区别在于 子查询得order by 需要 使用 top

SELECT
		USERS u
		LEFT JOIN USER_AUTH ua ON ua.id = (SELECT top 1 b.id FROM USER_AUTH b WHERE b.userId = u.id ORDER BY b.id )

DataGrip 上诉方法 mysql 运行结果:

Navicat Premium 15 mysql 执行结果

Navicat Premium 15 SQL server  执行结果

emmmmm

sql 多次执行发现时间 都不稳定。 综合下来 方法一 得效率更好

本文实例讲述了 MySQL 多表 关联 一对多 查询 实现 最新 一条 数据 的方法。分享给大家供大家参考,具体如下: MySQL 多表 关联 一对多 查询 最新 一条 数据 遇到的问题 多表 关联 一对多 查询 最新 一条 数据 数据 出现重复 由于历史原因,表结构设计不合理;产品告诉我说需要导出客户信息 数据 ,需要导出客户的 所属行业,纳税性质 数据 ;但是这两个字段却在订单表里面,每次客户下单都会要求客户填写;由此可知,客户 数据 和订单 数据 一对多 的关系;那这样的话,问题就来了,我到底以订单中的哪 一条 数据 为准呢?经过协商后一致同意以 最新 一条 数据 为准; 数据 测试初始化 SQL 脚本 DROP TABLE IF EXIST
目录 多表 关联 关系的分类mybatis中的 多表 查询 数据 库准备 项目目录 一对一 查询 (多对一)方式一:(xml文件映射) 查询 结果: 方式二:(注解映射) 一对多 查询 ( 一对多 )方式一:(xml文件映射) 方式二:(注解映射)既然 数据 库是存储项目中的 数据 的,项目中的 数据 主要是类型创建的对象,项目中类型和类型之间是有关系的, 数据 库中怎么体现出来? 不论是生活中,还是抽象出来的软件中,描述生活中的多个类型之间的关系,总结如下:举例:学生和成绩就是 一对多 成绩和学生就是一对一 一个学生可以有多个成绩 多个成绩属于同一个