MySQL JOIN Summary


1. JOIN语法(精简后)table_reference:
table_factor
| join_tabletable_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_factorjoin_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的特点是, 同名字段相连接, 且去重. 其实际作用不大.

相关推荐: PHPWAMP新版快速自定义任意的Mysql详解

下文内容主要给大家带来PHPWAMP新版快速自定义任意的Mysql详解,这里所讲到的知识,与书籍略有不同,都是开发云专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。讲解前先回答个小问题,有用户向我询问:PHPWAMP…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/09 16:38
下一篇 06/09 16:38

相关推荐