新闻详情

新闻详情

首页 / 资讯中心 / 详情

联合 查询

发布时间:2026/9/26 11:13:33来源:尧图网络
联合 查询
为什么要联合查询 有时为了查询一个完整的数据 需要从多个表中同时获取数据数据库是怎么联合查询的 在使用联合查询时数据库获取参与查询的表的笛卡尔积并把结果汇聚到一个临时表中1. 笛卡尔积笛卡尔积 简单来说就是将要参与查询的每个表的数据进行排列组合是两多个表之间的运算举个例子 :2 个表进行笛卡尔积的结果 笛卡尔积得到结果是完全排列组合的结果会出现无效的数据和有效数据通常使用一些条件来筛选数据2. 内连接构造数据createtablecourse(course_idintprimarykeyauto_increment,namevarchar(20));createtablestu(stu_idintprimarykeyauto_increment,namevarchar(20),snovarchar(10),class_idint);createtableclass(class_idintprimarykeyauto_increment,namevarchar(20));createtablescore(stu_idint,course_idint,scoreint);insertintocourse(name)values(Java),(C),(MysQL),(操作系统),(计算机网络),(数据结构);insertintoclass(name)values(Java001班),(C001班),(前端001班);insertintostuvalues(null,唐三藏,100001,1),(null,孙悟空,100002,1),(null,猪悟能,100003,1),(null,沙悟净,100004,1),(null,宋江,200001,2),(null,武松,200002,2),(null,李逹,200003,2),(null,不想毕业,200004,2);insertintoscore(score,stu_id,course_id)values-- 唐三藏的成绩(70.5,1,1),(98.5,1,3),(33,1,5),(98,1,6),-- 孙悟空的成绩(60,2,1),(59.5,2,5),-- 猪悟能的成绩(33,3,1),(68,3,3),(99,3,5),-- 沙悟净的成绩(67,4,1),(23,4,3),(56,4,5),(72,4,6),-- 宋江的成绩(81,5,1),(37,5,5),-- 武松的成绩(56,6,2),(43,6,4),(79,6,6),-- 李逵的成绩(80,7,2),(92,7,6);得到笛卡尔积的 SQL 语句 select * from 表名, 表名, ... ;在from后同时写所有参与查询的表并⽤逗号隔开内连接的 2 种 SQL 语法 :select 字段 from 表名1表名2, ... where 连接条件 and 其他条件select 字段 from 表名1 (inner) join 表名2 join ... on 连接条件 where 其他条件示例 1 查询班级信息和学生信息查询孙悟空的班级信息和学生信息在联合查询时注意筛选条件在where后的连接条件中表的字段不能只写字段表名.字段来指定字段才可以直接写字段数据库会报错 ❌如果想精简下查询条目可以配合指定列查询但是在指定列的时候也要表名.字段第二种语法 示例 2 查询每个同学的总成绩示例 3 查询个人信息和成绩、课程信息这次是 3 个表联合查询 这次需要用where关联 3 个表stu.stu_id score.stu_idcourse.course_id score.course_id3. 外连接构造数据createtablestu(stu_idint,namevarchar(20));createtablescore(stu_idint,scoreint);insertintostuvalues(1,唐三藏),(2,孙悟空),(3,猪八戒);insertintoscorevalues(1,100),(2,89),(3,70);外连接分为左外连接和右外连接当表的数据是一一对应的左外连接和右外连接、内连接是没有区别的例如 :左外连接 SQL语句 select 字段 from 表名1 left join 表名2 on 连接条件 where 其他条件右外连接 SQL语句 select 字段 from 表名1 right join 表名2 on 连接条件 where 其他条件修改score表的stu_id 3为stu_id 4 2 个表数据就不一一对应这时的内连接只有 2 表相匹配的数据 当数据不一一对应时 ,左外连接和右外连接、内连接就会有区别左外连接 返回左表中的所有记录和右表中相匹配的记录如果右表中没有匹配的记录则会返回nullstu是左表,记录是全部显示的score表是右表只有stu_id相匹配的显示了正常分数没有匹配的就是null右外连接 返回右表中的所有记录和左表中相匹配的记录如果左表中没有匹配的记录则会返回nullstu是左表 ,只有stu_id相匹配的显示了名字没有匹配的就是nullscore表是右表记录是全部显示的4. 自连接自连接 自己和自己算笛卡尔积本质是把行关系转换为列关系SQL 中指定条件都是指定的列关系如果需要比较行之间的关系自连接就会排上用场查询 MySQL 成绩比 Java 成绩高的信息查询mysql和java的cours_id自己和自己的笛卡尔积在查询自连接的笛卡尔积时不能from 自己, 自己;,需要as 别名结果
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Trae、Cursor生成式AI,Builder智能体体验报告:TaoToken统一Key接入配置实战 2026/9/26 13:39:22

Trae、Cursor生成式AI,Builder智能体体验报告:TaoToken统一Key接入配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI 编程简历总卡在“交付”?用 TaoToken 统一 Key 打通权限与日志闭环 2026/9/26 13:39:15

AI 编程简历总卡在“交付”?用 TaoToken 统一 Key 打通权限与日志闭环

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
【开源】2 分钟在 Windows 上搭建 AI Agent 运行环境:MachineY Engine 使用指南(TaoToken 配置篇) 2026/9/26 13:39:15

【开源】2 分钟在 Windows 上搭建 AI Agent 运行环境:MachineY Engine 使用指南(TaoToken 配置篇)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
洛谷P1125笨小猴:Python字符串统计与质数判断的边界陷阱 2026/9/26 13:39:09

洛谷P1125笨小猴:Python字符串统计与质数判断的边界陷阱

做洛谷P1125这道题的时候,我第一反应是“这不就是个字符串统计加质数判断嘛”,结果第一次提交就被WA打脸了。问题出在minn的取值上——我用了长度为26的数组统计每个字母出现次数,然后直接对整组数求最小值,完全没想过那些没出现过…

阅读更多 →
Spring Boot @Retryable与@Recover实战:优雅实现重试与降级 2026/9/26 13:39:09

Spring Boot @Retryable与@Recover实战:优雅实现重试与降级

1. 重试机制到底解决了什么问题 1.1 远程调用失败的常态与痛点 做后端开发的朋友应该都遇到过这种场景:调用第三方接口超时、数据库连接池暂时被占满、外部服务临时抖动返回500。这些状况在分布式系统里不是“会不会出现”的问题,而是“多久出现一次”的…

阅读更多 →
Spring Boot重试机制全解析:从@Retryable到@Recover的工程实践 2026/9/26 13:39:09

Spring Boot重试机制全解析:从@Retryable到@Recover的工程实践

1. 为什么需要重试机制?——从一次线上故障说起那天下午我的手机被运维瞬间打爆,原因是线上订单服务大面积超时,连带支付回调也攒了整整五千多条。事后翻日志才发现罪魁祸首是下游的库存服务在做一次全量缓存重建,偶尔返回 503&am…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉