码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL 多表关联一对多查询实现取最新一条数据


    场景:个人用户进行实名认证。一个人存在多个实名认证结果。期望获取到每个人最新一条实名认证结果 加 个人信息。

    一、写出查询用户信息加实名认证得sql

    SELECT
    	* 
    FROM
    	USERS u
    	LEFT JOIN USER_AUTH ua ON ua.userId = u.id 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    二、改造sql 可以获取到最新一条实名记录

    方法一:

    1、大致思路进行 left join得这张表提前 先分组筛选出 最新一条记录 。

    SELECT
    	* 
    FROM
    	USERS u
    	LEFT JOIN ( SELECT MAX( id ) AS id, userId FROM USER_AUTH GROUP BY userId ) AS ua ON ua.userId = u.id
    
    • 1
    • 2
    • 3
    • 4
    • 5

    方法二:

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

    SELECT
    	* 
    FROM
    	(
    	SELECT
    		u.id,
    		row_number() over ( PARTITION BY u.id ORDER BY u.id ) AS rowno 
    	FROM
    		USERS u
    		LEFT JOIN USER_AUTH ua ON u.id = ua.userId
    	) tmp 
    WHERE
    	rowno = 1;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    方法三:

    SELECT
    		u.id
    	FROM
    		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 )
    
    • 1
    • 2
    • 3
    • 4
    • 5

    sql server 需要缓存下面写法

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

    SELECT
    		u.id
    	FROM
    		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 )
    
    • 1
    • 2
    • 3
    • 4
    • 5

    DataGrip 上诉方法 mysql 运行结果:

    Navicat Premium 15 mysql 执行结果

    Navicat Premium 15 SQL server 执行结果

    emmmmm

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

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    华为配置聚合vlan(Super vlan--Sub vlan)
    C++中double类型使用技巧
    java8使用stream流将list转map
    Chrome和chromedriver版本不匹配导致的UI自动化测试无法运行的问题
    移动通信网络规划:配套设施要求
    如何将 JavaScript Excel XLSX 查看器添加到Web应用程序
    【重识云原生】第四章云网络4.9.5.1节下一代智能网卡——DPU综述
    async await应用,异步函数的使用神器,详细讲解使用技巧(一)
    推荐10个地推拉新app推广接单平台,都是一手单 官签渠道
    网络协议:包丢失&物理层&数据链路层
  • 原文地址:https://blog.csdn.net/m0_54866636/article/details/126113121
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号