千家信息网

sql join on的使用方法

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"sql join on的使用方法",在日常操作中,相信很多人在sql join on的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"sql j
千家信息网最后更新 2026年11月01日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安全错误 数据库的锁怎样保障安全 湖北九亚互联网络科技有限公司 科技互联网龙头 科技企业和互联网企业 齐家互联网科技有限公司 科技互联网创业计划书 成都狮子座互联网科技 北京大学互联网科技怎么样 阿里巴巴算科技企业还是互联网 创业天下互联网科技有限公司 贵州叶脉互联网科技有限公司所属行业 湖南一路畅行互联网科技 洛阳昕诺飞互联网科技有限公司 米聚互联网科技南京有限公司排面 银川新华互联网科技学校联系电话 明优互联网科技有限公司 互联网公司高科技产品 城市宝互联网科技有限公司 扫呗互联网科技有限公司 互联网界的黑科技 现代互联网科技公司 互联网科技工作委员会 互联网最新的科技有限公司 喔噻互联网科技 齐家互联网科技 汇久创客互联网科技 互联网对科技的发展 浙南科技城互联网大厦建设工程 神州科技互联网有限公司 互联网科技手机排行榜 米泉互联网科技专业怎么样
0