三表连接之内连接

表之间的关系为:

manager 1-------------->n department 1----------------->n employee

mysql> select * from manager;

2 rows in set (0.00 sec)

mysql> select * from department;

3 rows in set (0.00 sec)

mysql> select * from employee;

2 rows in set (0.00 sec)

mysql> select * from manager as ma inner join department as de on ma.id=de.manag
er_id inner join employee as em on de.id=department_id;

2 rows in set (0.02 sec)

三张表的连接可理解为这样:
mysql> select * from manager as ma inner join department as de on ma.id=de.manag
er_id;

先让manager和department两张表做内连接,结果如上

然后再用这张表与employee做内连接。结果如下

mysql> select * from manager as ma inner join department as de on ma.id=de.manag
er_id inner join employee as em on de.id=department_id;

时间: 2024-10-10 05:59:02

三表连接之内连接的相关文章

数据库连接之内连接、自然连接、外连接区分

数据库中的连接分为:内连接.自然连接.外连接:(外连接又分为:左外连接,右外连接和全外连接) 自然连接(natural join): 自然连接是一种特殊的等值连接,他要求两个关系表中进行比较的必须是相同的属性列,无须添加连接条件,并且在结果中消除重复的属性列. 内连接(inner  join): 指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件. (内连接基本与自然连接相同,不同之处在于自然连接要求是同名属性列的比较,而内连接则不要求两属性列同名,可以用on来指定某两列字段相

SQL中的左连接与右连接,内连接有什么不同

SQL中的左连接与右连接,内连接有什么不同 我们来举个例子.天庭上面有一个管理系统:管理系统有个主表:主表记录着各个神仙的基本信息(我们把它当成表A).还有个表记录着他们这个神仙的详细信息(我们把它当成表B). 表A的信息为 idA name position 1 李靖 托塔天王 2 值年神李丙 四值功曹 3 增长天王 四大天王 4 青龙孟章神君 四方神 表B的信息为(此神仙有无犯过天条) IDB Name THINGS 1 NO 3 YES 上班玩忽职守 4 NO 5 NO 6 YES 调戏嫦

内连接 外连接 交叉连接

数据库表连接大致分为三种:交叉连接.内连接.外连接 交叉连接(CROSS JOIN):其实就是内连接的一种特例,不带查询条件 内连接(INNER JOIN):相等连接.不等连接.自然连接 外连接(OUTER JOIN):左外联接.右外链接.全外连接(全外连接只有部分RDBMS系统可以做到,例如Oracle.做不到的有MySQL.SQL Server.Access) 交叉连接: 最简单,返回多张表每一行相乘的结果,也就是笛卡尔积.关键字是 CROSS JOIN 写法有三种:CROSS JOIN ,

mysql 内连接 左连接 右连接 外连接

mysql> desc student;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| ID | int(11) | NO | PRI | 0 | || NAME | varchar(16) | YES | | NULL | || A

左连接,右连接,内连接,外连接, join, left join, right join ,mysql ,oracle

2016-6-12 22:35:51 工作用了一年多的oracle,最近在学mysql, 仔细想想 各种连接,感觉这些概念还是蛮烦人的! 最近整理了一下,分享一下自己的理解,有些东西是借鉴网上并自己吸收了的. 1.不管是什么连接,oracle和mysql的原理是一模一样的,只是有些写法不一样而已.说到写法,这里提一下, select * from A, B where a.filed1=b.filed2; --这是第1种写法, 内连接,这样写,很方便, oracle和mysql通用 select

sql 内连接 外连接 左连接 右连接

1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.     内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和courses表中学生标识号相同的所有行.       2.外联接.外联接可以是左向外联接.右向外联接或完整外部联接.     在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:     1)LEFT  JOIN或LEFT OUTER JOIN     左向外联接的结果集包括  LEF

内连接 外连接 自连接 交叉连接

======================================================== My SQL如下: ======================================================== 1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和courses表中学生标识号相同的所有行. 2.外联接.外联接

mysql连接内连接、左连接、右连接、全连接

联接条件可在ROM或WHERE子句中指定,建议在FROM子句中指定联接条件.WHERE和HAVING子句也可以包含搜索条件,以进一步筛选联接条件所选的行. 联接可分为以下几类: 内联接(典型的联接运算,使用像 =或<>之类的比较运算符).包括相等联接和自然联接.内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索students和courses表中学生标识号相同的所有行. 外联接. 外联接可以是左向外联接.右向外联接或完整外部联接. 在 FROM子句中指定外联接时,可以由下列

JNDI连接池连接Oracle数据库

今天做了一个评论的小功能,要求用JNDI连接池连接Oracle数据库,以前只是测试了是否连接的上,现在没想到一个JNDI连接池连接Oracle数据库,纠结了好久,原来都是Oracle数据库的问题,这是过失.下面介绍一下JNDI连接池连接Oracle数据库. JNDI介绍 什么是JNDI? JNDI(Java Naming and Directory Interface,Java命名和目录接口) 是一组在Java应用中访问命名和目录服务的API 通过名称将资源与服务进行关联 什么是连接池技术? 连