sql的join可以分为内连接(inner join),外连接(outer join)、交叉连接(cross join) 其中inner和outer语法中需要加on, on后为连接条件,按照这个条件来进行筛选 cross语法不需要加on 1.inner join 内连接 看成两个表的并集,要求每个表中每一行都匹配,不匹配的行会被排除 在Stu、Class两表中使用内连接,目的是取出...
-- inner 可以省略 表1 [inner] join 表2 on 匹配条件; -- 查询学生所在班级及其所在班级的名称 -- 因为表的设计通常会容易产生同名字段,为了保证数据的唯一性,可以使用 表名.字段名 来确保唯一性 -- 如果条件中使用的表名比较长,一般会使用表别名来替换 SELECT stu.name '姓名',c.name '班级' from st...
左外连接Left join关键字会从左表那里返回所有的行,即使是在右表中没有匹配到的行 下面是一个简单的案例 下面是测试用例 右外连接 right join 右外连接关键字Right join会从右表那里返回所有的行,即使是在左表中没有匹配到的行 下面是一个简单的案例 下面是运行及其结果 全连接 full join 全连接的关键字Full...
内联合(inner join) 只生成同时匹配表A和表B的记录集。(如下图) inner join 代码语言:javascript 代码运行次数:0 复制 Cloud Studio代码运行 SELECT*FROMTableAINNERJOINTableBONTableA.name=TableB.name id name id name---1Pirate2Pirate3Ninja4Ninja 全外联合(full outer join) 生成表A和表B里的记录全集,...
缺省情况下是inner join,开发中使用的left join和right join属于outer join,另外outer join还包括full join.下面我通过图标让大家认识它们的区别。现有两张表,Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的:
CROSS JOIN 笛卡尔乘积(所有可能的行对) INNER JOIN 仅对满足连接条件的CROSS中的列 LEFT OUTER JOIN 一个表满足条件的行,和另一个表的所有行 RIGHT OUTER JOIN 与LEFT相同,但两个表的角色互换 FULL OUTER JOIN LEFT OUTER 和 RIGHT OUTER中所有行的超集 ...
外连接:left join,left outer join,right join,right outer join,union 交叉连接:cross join 2.假设有两张表格A和B,把表格当作一个集合,那么表格中的记录就是集合中的一个元素。 两张表格如下: TableA: TableB: 1)分类:内连接(只有一种场景)
内连接 inner join 内连接是基于连接谓词将俩张表(如A和B)的列组合到一起产生新的结果表,在表中存在至少一个匹配时,INNER JOIN 关键字返回行。 下面是一个简单的使用案例 以下是运行代码及结果 左外连接 left join 左外连接Left join关键字会从左表那里返回所有的行,即使是在右表中没有匹配到的行 ...
1.INNER JOIN 产生的结果是AB的交集 SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name 2.LEFT [OUTER] JOIN 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name 3....
1 OUTER JOIN TABLE_2 是错误的。OUTER JOIN,与 INNER JOIN是对应的。有点区别是语法上INNER JOIN是...