sql join on的使用方法
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍"sql join on的使用方法",在日常操作中,相信很多人在sql join on的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"sql j
千家信息网最后更新 2025年11月08日sql join on的使用方法
这篇文章主要介绍"sql join on的使用方法",在日常操作中,相信很多人在sql join on的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"sql join on的使用方法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
A left join B 的连接的记录数与A表的记录数同
A right join B 的连接的记录数与B表的记录数同
A left join B 等价B right join A
table A:Field_K, Field_A1 a3 b4 c
table B:Field_K, Field_B1 x2 y4 z
select a.Field_K, a.Field_A, b.Field_K, b.Field_B from a left join b on a.Field_K=b.Field_K
Field_K Field_A Field_K Field_B ---------- ---------- ---------- ---------- 1 a 1 x 3 b NULL NULL4 c 4 z
也就是说left join 则连接左边表中所有记录都会出现,如果根据连接条件在table2中找不到相关记录,则显示为null。
right join 则显示右边表中的全部记录。inner join 则只有符合条件的记录才会出现在结果集中。
EG2∶有两表a和b,前两字段完全相同:(id int,name varchar(10)...)
id name
----------- ----------
1 a
2 b
3 c
以下的查询语句,你知道它的运行结果吗?:
1.
select * from a left join b on a.id=b.id where a.id=1
2.
select * from a left join b on a.id=b.id and a.id=1
3.
select * from a left join b on a.id=b.id and b.id=1
4.
select * from a left join b on a.id=1
结果:
id name id name
----------- ----------- ----------- -----------
1 10 1 10
(1 row(s) affected)
id name id name
----------- ----------- ----------- -----------
1 10 1 10
2 20 NULL NULL
3 30 NULL NULL
(3 row(s) affected)
id name id name
----------- ----------- ----------- -----------
1 10 1 10
2 20 NULL NULL
3 30 NULL NULL
(3 row(s) affected)
id name id name
----------- ----------- ----------- -----------
1 10 1 10
1 10 2 20
1 10 3 30
2 20 NULL NULL
3 30 NULL NULL
(5 row(s) affected)
思路:
left join , 无非是左边表为基础, 扫描右边表匹配的记录
先是左边表的第1条记录
1 a
按条件 a.id=1, 来扫描右边表的记录
对于右边表的每条记录, 显然 a.id=1 这个条件都是成立的, 所以第1条记录匹配后的结果是:
1 a 1 a
1 a 2 b
1 a 3 c
---------------------------------------------
然后再扫描第2条记录
2 b
对于条件 a.id=1, 在边表中没有与之匹配的记录, 所以右边表为NULL
因此第2条记录匹配的结果为
2 b NULL NULL
----------------------------------------------
第3条记录与第2条记录一样, 匹配的结果是
3 c NULL NULL
---------------------------------------
因此最终结果是5条记录
1 a 1 a
1 a 2 b
1 a 3 c
2 b null null
3 c null null
内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。
内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students 和 courses 表中学生标识号相同的所有行。
外联接,外联接可以是左向外联接、右向外联接或完整外部联接。
在 FROM 子句中指定外联接时,可以由下列几组关键字中的一组指定:
LEFT JOIN 或 LEFT OUTER JOIN。
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
RIGHT JOIN 或 RIGHT OUTER JOIN。
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
FULL JOIN 或 FULL OUTER JOIN。
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
交叉联接。
交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。
到此,关于"sql join on的使用方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
结果
外联
方法
右边
条件
使用方法
学习
交叉
运算
相同
中指
子句
更多
运算符
帮助
选择
实用
接下来
一行
不仅仅
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全关于群主
软件开发服务费加计扣除吗
数据库中间件采购合同范本
更改服务器密码
第六代网络技术什么时候上市
固定ip搭建服务器
查看代理服务器
华强大厦互联网科技孵化器
法院网络安全制度
陕西监控服务器机柜虚拟主机
电商公司网络安全案例
物联网软件开发中国前三公司
山东省服务器哪个系列好云主机
泾县自动化软件开发服务设备
网络安全为人民的手抄报图片
软件开发适合什么考核方式
桌面软件显示服务器错误
关于网络安全机制的书
twitch服务器
网络安全主题论文
服务器大概有哪些安全威胁
软件开发技术咨询公司
网络安全技术与实践黄晓芳
万山天气预报软件开发
北京个性化软件开发预算
数据库 大数据同步
oral数据库怎么解锁账户
调整mysql数据库表上限
茌平软件开发培训教学视频
北京培训软件开发工程师