SQL: 左连接,右连接,内连接

例子:
----------------------   ---------------------------
  a表     id   name       b表   id   job   parent_id
           1   张三             1    23     1
           2   李四             2    34     2
           3   王武             3    34     4
----------------------   ----------------------------    a.id同parent_id   存在关系

原表如上

1.左连接:

官方解释:left join(左连接)返回包括左表中的所有记录和右表中连接字段相等的记录

左连接
  select   a.*,b.*   from   a   left   join   b     on   a.id=b.parent_id
  结果是
  1   张3                   1     23     1
  2   李四                  2     34     2
  3   王武                  null

2.右连接:

官方解释:right join(右连接)返回包括右表中的所有记录uhe和左表中连接字段相等的记录

右连接
  select   a.*,b.*   from   a   right   join   b     on   a.id=b.parent_id
  结果是
  1   张3                   1     23     1
  2   李四                  2     34     2
  null                       3     34     4

3.内连接:

官方解释:inner join(等值连接)之返回两个表这哦个连接字段相等的行

内连接
  select   a.*,b.*   from   a   inner   join   b     on   a.id=b.parent_id
  结果是
  1   张3                   1     23     1
  2   李四                  2     34     2

原文地址:https://www.cnblogs.com/baxianhua/p/9035743.html

时间: 2024-10-30 15:02:29

SQL: 左连接,右连接,内连接的相关文章

解析:内联,左外联,右外联,全连接,交叉连接的区别

连接分为:内连接.外连接.交叉连接 一.内连接--最常用 定义:仅将两个表中满足连接条件的行组合起来作为结果集. 在内连接中,只有在两个表中匹配的行才能在结果集中出现 关键词:INNER JOIN 格式:SELECT 列名表 FROM 表名1 [INNER] JOIN 表名2 ON或WHERE 条件表达式 说明: (1)列名表中的列名可以出自后面的两个表,但如果两个表中有同名列,应在列名前标明出处,格式为:表名.列名 (2)若连接的两个表名字太长,可以为它们起个别名. 格式为:表名 AS 别名 

oracle连接总结(内连接、外连接、自然连接,交叉连接,自连接)

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! oracle连接总结(内连接.外连接.自然连接,交叉连接,自连接) 1.简述  1) 两个表的连接,是通过将一个表中的一列或者多列同另一个表中的列链接而建立起来的.用来连接两张表的表达式组成了连接条件.当连接成功后,第二张表中的数据就同第一张表连接起来了,并形成了复合结果集 2) 有5种基本类型的的连接,inner,outer,natural,cross连接,自连接. 2.说明与例子 1)内连接 (inner join (可简写为j

4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)

 mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,执行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- 选择数据库 use mydb61; -- 增加 dbuser1 用户 --     创建用户'dbuser61'密码为 'dbuser61'拥有操作数据库mydb61的所有权限 GRANT ALL ON mydb61.* TO dbuser61 IDENTIFIED BY "dbuser61&quo

Oracle表与表之间的连接方式(内连接:inner join 、外连接 全连接: full outer join、左连接:left outer join 、右连接:right outer join、自然连接:natural join)

1 --内连接:INNER JOIN 它表示返回两个表或记录集连接字段的匹配记录,表示两个表中相互包含的部分 2 select * from student inner join sc on student.sno=sc.sno; 3 --外连接(全连接):包含左.右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行.不符合条件的,以空值代替. 4 --全连接:表示两个表组合在一起,左右不相匹配时使用空值替换 5 select * from student full outer join

sas中的sql(4) 多表操作,内连接,外连接(left | right | full/join),In-Line Views

Understanding Joins 1.Joins combine tables horizontally (side by side) by combining rows. The tables being joined are not required to have the same number of rows or columns. (被join的表不需要行或列与join表的相同) 2.When any type of join is processed, PROC SQL sta

SQL SERVER 多表操作 内连接、外连接

MSSQL 数据库分为 自然连接.内连接.外连接 1.自然连接和内连接基本相同.不同之处在于,自然连接“=”两侧的列属性值必须相同,内连接可以不同,只要读取数据相同即可. 自然连接 eg. select worker.职工号,depart.部门 from worker,depart where worker.部门编号 = depart.部门编号 2.内连接.一般使用INNER JOIN 关键字来表示内连接,INNER不是必须的可以不写.除了JOIN 关键字,还必须使用ON 或者using关键字

SQL中的连接可以分为内连接,外连接,以及交叉连接 。

1. 交叉连接CROSS JOIN 如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积: 举例,下列A.B.C 执行结果相同,但是效率不一样: A:SELECT * FROM table1 CROSS JOIN table2 B:SELECT * FROM table1,table2 C:select * from table1 a inner join table2 b A:select a.*,b.* from table1 a,table2

SQL各种连接——自连接、内连接、外连接、交叉连接的使用

首先准备了两个表 (Student 和 Course),其中 Student 表中的 C_S_Id 字段为外键列,关联的是 Course 表的 C_Id 主键列. 内连接(inner join):满足on条件表达式,内连接是取满足条件表达式的两个表的交集(即两个表都有的数据). 1 select * from Student s 2 inner join Course c on s.C_S_Id=c.C_Id 外连接(outer join)分为:左外连接(left join / left out

Hibernate迫切左外连接和迫切内连接

•迫切左外连接: •LEFT JOIN FETCH 关键字表示迫切左外连接检索策略. –list() 方法返回的集合中存放实体对象的引用, 每个 Department 对象关联的 Employee  集合都被初始化, 存放所有关联的 Employee 的实体对象. –查询结果中可能会包含重复元素, 可以通过一个 HashSet 来过滤重复元素 •左外连接: –LEFT JOIN 关键字表示左外连接查询. –list() 方法返回的集合中存放的是对象数组类型 –根据配置文件来决定 Employee

连接(交叉连接、内连接、外连接、自连接)

本文非原创 可分为:交叉连接.内连接.外连接.自连接 1.使用交叉连接: 它是非限制连接,就是将两个表格不加任何条件的组合在一起, 即第一个表格的所有记录分别和第二个表格的每一条记录相连接 组合成新的记录,连接后结果集的行数是两个表格的行数的乘积, 列为两表列之和. 语法: (1)select 列名列表 from 表名1 cross join 表名2 (2)select 列名列表 from 表名1 (起别名) , 表名2 注意:当显示某一些字段要用表名指定. 例:select a.book_na