当前位置 主页 > 技术大全 >

    mysql全连接,实现全连接的 SQL 语法

    栏目:技术大全 时间:2025-09-23 15:29


    在 MySQL 中,并没有直接支持 FULL JOIN(全连接)语法,但可以通过 LEFT JOIN 和 RIGHT JOIN 的组合来实现全连接的效果。
    全连接的含义是:返回两个表中所有匹配和不匹配的记录。当左表有记录而右表没有匹配时,右表字段显示为 NULL;当右表有记录而左表没有匹配时,左表字段显示为 NULL
    实现全连接的 SQL 语法如下:
    sql
    -- 方法:使用 LEFT JOIN + RIGHT JOIN + UNION 去重
    SELECT *
    FROM1
    LEFT JOIN2 ON1.关联字段 =2.关联字段
    UNION
    SELECT *
    FROM1
    RIGHT JOIN2 ON1.关联字段 =2.关联字段;
    
     

    说明:

    1. UNION 用于合并两个查询结果,会自动去除重复记录
    2. 如果需要保留重复记录,可以使用 UNION ALL
    3. 实际使用时需要将 表1表2 和 关联字段 替换为实际的表名和关联条件

    示例:

    假设有 students 表和 scores 表,查询所有学生及其成绩(包括没有成绩的学生和没有对应学生的成绩记录):
    sql
    SELECT *
    FROM students
    LEFT JOIN scores ON students.id = scores.student_id
    UNION
    SELECT *
    FROM students
    RIGHT JOIN scores ON students.id = scores.student_id;
    
     
    这种方式能达到与全连接相同的效果,是 MySQL 中实现全连接的标准做法。
1分钟搞定MySQL部署!Docker最强实操指南,含所有常用命令和配置
忘记MySQL密码怎么办?别慌!用这一招跳过验证,轻松重置管理员权限
MySQL自增主键用完怎么办?从原理到实战,全面破解开发中的高频难题
MySQL权限混乱?这几个命令让你彻底理清用户清单与权限归属
你的数据库安全吗?读懂MySQL这几种日志,关键时刻能「救你一命」
MySQL性能上不去?八成是这里没配好!手把手教你搞定my.cnf核心配置
修改MySQL字段长度别乱来!这3个核心要点和1个致命陷阱,新手必看
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
你的MySQL数据库为什么总是又慢又卡?掌握这五大优化法则,查询速度快十倍!(上篇)
你的MySQL数据库为什么总是又慢又卡?掌握这五大优化法则,查询速度快十倍!(下篇)