文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL JOIN Summary

2024-04-02 19:55

关注


1. JOIN语法(精简后)

table_reference:
    table_factor
  | join_table

table_factor:
    table_subquery [AS] alias
  | ( table_references )

join_table:
    table_reference [INNER | CROSS] JOIN table_factor [join_condition]
  | table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_condition
  | table_reference NATURAL [{LEFT|RIGHT} [OUTER]] JOIN table_factor

join_condition:
    ON conditional_expr
  | USING (column_list)


2. JOIN分类: 内连接, 外连接.


2.1 内连接(INNER JOIN)

a. 在MySQL中, JOIN, CROSS JOIN, and INNER JOIN语法是等价的; 不指定ON条件, 得到的是笛卡尔积(That is, each and every row in the first table is joined to each and every row in the second table).


b. 内连接(INNER JOIN), 或称等值连接, 其只显示满足条件的记录.

若表left_tbl和right_tbl, 在表示内连接时, 有两种形式: left_tbl INNER JOIN right_tbl, 和left_tbl,(comma) right_tbl. 该两种形式在语法上是等价的, 但是JOIN的优先级高于,(comma operator), 混用时可能产生错误, 最好使用JOIN.

内连接的两种表现形式, 分别对应了两种获取数据的方式: ON, 和WHERE. 在使用ON时, 也都可以改写为,(comma). 但ON说明的是: 如何完成表间的JOIN操作, 而WHERE只是在结果集种过滤出满足条件的记录, 含义还是有区别的.


2.2 外连接(OUTER JOIN)

a. 外连接有两种形式: LEFT | RIGHT [OUTER] JOIN(OUTER可省略), 常见用于获取在表left_tbl, 而不在表right_tbl中的数据.
SELECT left_tbl.* FROM left_tbl LEFT JOIN right_tbl ON left_tbl.id = right_tbl.id WHERE right_tbl.id IS NULL; 


b. 若表a, 和b中有相同的字段, 如c1, c2, c3, 那么下面的两种写法是等价的:
a LEFT JOIN b USING (c1, c2, c3)
a LEFT JOIN b ON a.c1 = b.c1 AND a.c2 = b.c2 AND a.c3 = b.c3


c. 对于a LEFT JOIN b USING (c1, c2, c3), 和a NATURAL LEFT JOIN b获取的结果集, 有稍许不同, 后者删除了重复字段. 这里NATURAL暂看成个关键字吧, 可和内外连接结合使用, NATURAL JOIN的特点是, 同名字段相连接, 且去重. 其实际作用不大.


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯