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文件映射) 方式二:(注解映射)既然
数据
库是存储项目中的
数据
的,项目中的
数据
主要是类型创建的对象,项目中类型和类型之间是有关系的,
数据
库中怎么体现出来?
不论是生活中,还是抽象出来的软件中,描述生活中的多个类型之间的关系,总结如下:举例:学生和成绩就是
一对多
成绩和学生就是一对一 一个学生可以有多个成绩 多个成绩属于同一个