多表查询
在实际应用中,经常使用多表查询。多表查询就是同时查询两个或两个以上的表。下面做个语法及示例汇总:
1. 内连接(join)
内连接侧重于两个表之间的共性,它的作用是使用连接,比较两个(或多个)表之间的共有数据,然后进行返回。
语法:
1.select * from 表名1 join 表名2 [on 条件] [where 表达式]; 2.select * from 表名1,表名2 [where 表达式]; 3.select * from 表名1 inner join 表名2 [on 条件] [where 表达式]; 4.select * from 表名1 cross join 表名2 [where 表达式];
示例1:
select A.USER_NAME from sys_usermanage A join ma_emp B on A.USER_ID=B.USER_ID where USER_CODE='67810'
示例2:
select * from sys_usermanage A,ma_emp B where USER_CODE='67810'
示例3:
select * from sys_usermanage A inner join ma_emp B on A.USER_ID=B.USER_ID where USER_CODE='67810'
示例4:
select * from sys_usermanage A cross join ma_emp B where USER_CODE='67810'
2. 外连接(left join)
外连接分为左(外)连接和右(外)连接。如果联合查询,左侧的表完全显示我们就说是左外连接;右侧的表完全显示我们就说是右外连接。
左连接语法:
-- 左外连接,表1完全显示 select * from 表名1 left join 表名2 on 连接条件 [where 连接条件];
示例:
select A.USER_NAME from sys_usermanage A left join ma_emp B on A.USER_ID=B.USER_ID where USER_CODE='67810'
注:左连接和右连接只需要掌握一种语法即可,可以使用左连接实现“右连接”,只需要把表的查询顺序调换一下就可以实现左/右连接的转换。
3. 自连接
自连接是指在同一张表连接查询多次。
语法:
SELECT 别名A.列名1,别名B.列名2 FROM 表名A 别名A JOIN 表名A 别名B where条件 ;
注:自连接查询必须对表起别名。
示例:
select A.USER_NAME,B.USER_CODE from sys_usermanage A,sys_usermanage B where A.USER_ID=B.USER_ID
4. 子查询(嵌套查询)
子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。将当前查询的结果作为另一个查询的where的选项。
语法:
SELECT * FROM 表名1 where 列名=(SELECT 列名 FROM 表名2 where 条件)
示例:
select * from sys_usermanage A where A.USER_ID=(select B.USER_ID from ma_emp B where B.EMP_CODE='81502')
5. 合并查询(union)
合并查询用于合并结果集相同的两张(多张)表,他有两个关键字:union、union all
语法:
SELECT 列名 FROM 表名1 union SELECT 列名 FROM 表名2
SELECT 列名 FROM 表名1 union all SELECT 列名 FROM 表名2
示例:
select A.USER_ID from sys_usermanage A union all select B.SEX from ma_emp B
select A.USER_ID from sys_usermanage A union select B.SEX from ma_emp B
union和union all 区别:union会将合并的结果集中的重复数据去重,只保留重复数据中的一条数据;而union all 是将结果集全部合并,即使有重复的数据结果也不会进行合并操作。
本文来自博客园,作者:查拉图斯特拉面条,转载请注明原文链接:https://www.cnblogs.com/n00dle/p/17276346.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)