MySQL Left Join,Right Join语句介绍
发布时间:2022-06-15 13:44:32 所属栏目:MySql教程 来源:互联网
导读:文章收藏了关于MySQL Left Join,Right Join各种查询语句,下面有需要的同学可以参考一下下. 在SQL标准中规划的(Join)联结大致分为下面四种: 1.内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结. 2.外联结:分为外左联结和外右联
文章收藏了关于MySQL Left Join,Right Join各种查询语句,下面有需要的同学可以参考一下下. 在SQL标准中规划的(Join)联结大致分为下面四种: 1.内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结. 2.外联结:分为外左联结和外右联结. 左联结A、B表的意思就是将表A中的全部记录和表B中联结的字段与表A的联结字段符合联结条件的那些记录形成的记录集的联结,这里注意的是最后出来的记录集会包括表A的全部记录。 右联结A、B表的结果和左联结B、A的结果是一样的,也就是说: Select A.name B.name From A Left Join B On A.id=B.id 和:Select A.name B.name From B Right Join A on B.id=A.id 执行后的结果是一样的. 3.全联结:将两个表中存在联结关系的字段的所有记录取出形成记录集的联结,这个不需要记忆,只要是查询中提到了的表的字段都会取出,无论是否符合联结条件,因此意义不大. 4.无联结:不用解释了吧,就是没有使用联结功能呗,也有自联结的说法. 这里我有个比较简便的记忆方法,内外联结的区别是内联结将去除所有不符合条件的记录,而外联结则保留其中部分。外左联结与外右联结的区别在于如果用A左联结B则A中所有记录都会保留在结果中,此时B中只有符合联结条件的记录,而右联结相反,这样也就不会混淆了。其实大家回忆高等教育出版社出版的《数据库系统概论》书中讲到关系代数那章(就是将笛卡儿积和投影那章)的内容,相信不难理解这些联结功能的内涵。 MySQL支持Select和某些Update和Delete情况下的Join语法,具体语法上的细节有,代码如下: table_references: table_reference [, table_reference] … table_reference: table_factor | join_table table_factor: tbl_name [[AS] alias] [{USE|IGNORE|FORCE} INDEX (key_list)] | ( table_references ) | { OJ table_reference LEFT OUTER JOIN table_reference ON conditional_expr } join_table: | table_reference NATURAL [LEFT [OUTER]] JOIN table_factor | table_reference RIGHT [OUTER] JOIN table_reference join_condition | table_reference NATURAL [RIGHT [OUTER]] JOIN table_factor --phpfensi.com join_condition: ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c) 这两个例子不仅让我们了解了MySQL中table_factor和table_reference含义,同时能理解一点CROSS JOIN的用法,我要补充的是在MySQL现有版本中CROSS JOIN的作用和INNER JOIN是一样的(虽然在SQL Standard中是不一样的,然而在MySQL中他们的区别仅仅是INNER JOIN需要附加ON参数的语句,而CROSS JOIN不需要)。 (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |