SQL 连接查询技术笔记
一、连接查询介绍属于DQL查询用于多张表联合查询数据。MySQL 中使用join实现多表连接分为三类inner join内连接left join左连接right join右连接数据准备-- 创建数据库createdatabasedb_test2;usedb_test2;-- 班级表createtableclasses(class_idintprimarykeyauto_increment,class_namevarchar(40)notnullunique,class_remarkvarchar(200));-- 学生表createtablestudents(stu_numchar(8)primarykey,stu_namevarchar(20)notnull,stu_genderchar(2)notnull,stu_ageintnotnull,cidint);-- 班级测试数据insertintoclasses(class_name,class_remark)values(Java2204,...);insertintoclasses(class_name,class_remark)values(Java2205,...);insertintoclasses(class_name,class_remark)values(Java2206,...);insertintoclasses(class_name,class_remark)values(Python2205,...);-- 学生测试数据insertintostudents(stu_num,stu_name,stu_gender,stu_age,cid)values(20220101,张三,男,20,1);insertintostudents(stu_num,stu_name,stu_gender,stu_age,cid)values(20220102,李四,女,20,1);insertintostudents(stu_num,stu_name,stu_gender,stu_age,cid)values(20220103,王五,男,20,1);insertintostudents(stu_num,stu_name,stu_gender,stu_age,cid)values(20220104,赵柳,女,20,2);insertintostudents(stu_num,stu_name,stu_gender,stu_age,cid)values(20220105,孙七,男,20,2);-- 无班级的学生cid为nullinsertintostudents(stu_num,stu_name,stu_gender,stu_age)values(20220106,小红,女,20);insertintostudents(stu_num,stu_name,stu_gender,stu_age)values(20220107,小明,男,20);二、内连接 inner join只返回两张表匹配条件成立的数据两边没有匹配的记录不会出现在结果中。笛卡尔积不写匹配条件时A表每条记录和B表每条记录全部互相组合总条数 A表条数 × B表条数大部分数据无业务意义必须加匹配条件过滤。语法-- on连接匹配条件推荐写法先匹配再组合数据效率高select*fromstudentsinnerjoinclassesonstudents.cidclasses.class_id;-- where先生成笛卡尔积再过滤效率低不推荐select*fromstudentsinnerjoinclasseswherestudents.cidclasses.class_id;结果说明小红、小明无班级Java2206、Python2205无学生不会被查询出来。三、左连接 left join以左边表为基准左表所有记录全部展示右表匹配到就显示对应数据没有匹配则字段填充null。语法select*fromstudentsleftjoinclassesonstudents.cidclasses.class_id;结果说明全部学生都会显示小红、小明班级相关字段全部为null。四、右连接 right join以右边表为基准右表所有记录全部展示左表匹配到就显示对应数据没有匹配则字段填充null。语法select*fromstudentsrightjoinclassesonstudents.cidclasses.class_id;结果说明全部班级都会显示Java2206、Python2205对应的学生字段全部为null。五、数据表别名多表查询表名较长时可以给表设置别名简化书写多张表存在同名字段必须使用表名.字段名区分。-- 给表设置别名 s、cselects.stu_name,c.class_namefromstudents sinnerjoinclasses cons.cidc.class_id;⚠️ 核心要点总结连接类型特点inner join只返回两边互相匹配的数据left join保留左表全部数据右表无匹配填nullright join保留右表全部数据左表无匹配填null连接匹配条件使用on不要用where做连接匹配where用于连接完成之后再过滤结果。多表字段重名必须通过表别名.字段名指定字段来源。笛卡尔积会产生大量无效数据多表连接一定要写on匹配条件。

相关新闻

VueGL开发实战:构建交互式3D数据可视化仪表盘

VueGL开发实战:构建交互式3D数据可视化仪表盘

VueGL开发实战:构建交互式3D数据可视化仪表盘 【免费下载链接】vue-gl Vue.js components rendering 3D WebGL graphics reactively with three.js 项目地址: https://gitcode.com/gh_mirrors/vu/vue-gl VueGL是基于Vue.js和three.js的WebGL 3D渲染组件库&am…

2026/8/6 21:18:10 阅读更多 →
【车联网】基于AODV、GPSR和LSPR车联网路由算法(含路由通信图 时间 车流密度 通信半径 )附Matlab代码

【车联网】基于AODV、GPSR和LSPR车联网路由算法(含路由通信图 时间 车流密度 通信半径 )附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 🍊个人信条:格物致知,完整Matlab代码及仿真咨…

2026/8/6 21:18:10 阅读更多 →
运维转大模型:脚本经验能直接迁移吗?权限日志才是Agent上线的门槛

运维转大模型:脚本经验能直接迁移吗?权限日志才是Agent上线的门槛

聊《同样转大模型,运维背景的优势和短板分别是什么?》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要去年我带团队做了一次内部转型调研,问了一圈从运维、SRE转大模型方向的同…

2026/8/6 21:17:10 阅读更多 →

最新新闻

Nginx接口复制技术解析与实践指南

Nginx接口复制技术解析与实践指南

1. 项目概述:Nginx接口复制技术解析在分布式系统架构中,接口流量复制(Traffic Mirroring)是一项关键的基础设施能力。通过Nginx实现请求镜像,我们可以在不影响主业务流程的情况下,将线上真实流量复制到测试…

2026/8/6 22:09:32 阅读更多 →
Nginx文件上传模块性能优化与配置指南

Nginx文件上传模块性能优化与配置指南

1. 为什么选择nginx-upload-module实现文件上传?在Web服务中实现文件上传功能是刚需,但传统方案各有痛点。PHP的move_uploaded_file受限于PHP环境,Java需要处理Servlet的Part接口,而Node.js的multer中间件对内存消耗较大。相比之下…

2026/8/6 22:09:32 阅读更多 →
为什么esp32-ai能颠覆边缘计算?揭秘25M参数存储在Flash中的创新方案

为什么esp32-ai能颠覆边缘计算?揭秘25M参数存储在Flash中的创新方案

为什么esp32-ai能颠覆边缘计算?揭秘25M参数存储在Flash中的创新方案 【免费下载链接】esp32-ai 项目地址: https://gitcode.com/gh_mirrors/esp/esp32-ai esp32-ai是一个能在ESP32-S3微控制器上运行28.9M参数语言模型的开源项目,它通过创新的存储…

2026/8/6 22:09:32 阅读更多 →
数字沙盘服务商对比:2026年主流厂商能力拆解与选型指南

数字沙盘服务商对比:2026年主流厂商能力拆解与选型指南

数字沙盘行业已形成“硬实力软技术场景理解”的三维竞争格局。2026年行业数据显示,72%的地产项目因使用模板化沙盘导致转化率提升不足14%,选对服务商已成为决定展示效果与营销转化的核心变量。以下从技术路线、标杆案例、客户口碑三个维度,对…

2026/8/6 22:09:31 阅读更多 →
WPGraphQL for WooCommerce安全最佳实践:JWT认证与会话管理

WPGraphQL for WooCommerce安全最佳实践:JWT认证与会话管理

WPGraphQL for WooCommerce安全最佳实践:JWT认证与会话管理 【免费下载链接】wp-graphql-woocommerce Add WooCommerce support and functionality to your WPGraphQL server 项目地址: https://gitcode.com/gh_mirrors/wp/wp-graphql-woocommerce WPGraphQL…

2026/8/6 22:09:31 阅读更多 →
深入了解anydoc工作原理:从字节到Markdown的神奇之旅

深入了解anydoc工作原理:从字节到Markdown的神奇之旅

深入了解anydoc工作原理:从字节到Markdown的神奇之旅 【免费下载链接】anydoc Convert Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, and PDF to clean Markdown. Built in Rust, with Node.js and Python bindings. 项目地址: https://gitcode.com/g…

2026/8/6 22:08:31 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →