多个表关联表查询

多个表关联表查询,第1张

先要把所有的表都关联起来,在写where,on后面是关联条件,where是筛选条件

select from user

left join info on useruser_age = infouser_age

left join tyu on tyuinfo_id=infoinfo_id --从第一行到这一行,把三个表关联起来了,但可能会有重复。

where 你需要的筛选条件,       

这里写你需要的筛选条件。

关系表:

关联关系必然有一个参照表,例如:

有一个员工档案管理系统项目,这个项目要包括下面的一些数据表:基本信息表、员工档案表、部门表、项目组表、yhk表(用来记录员工的yhk资料)。

这些数据表之间存在一定的关联关系,我们以员工基本信息表为参照来分析和其他表之间的关联:

每个员工必然有对应的员工档案资料,所以属于HAS_ONE关联;

每个员工必须属于某个部门,所以属于BELONGS_TO关联;

每个员工可以有多个yhk,但是每张yhk只可能属于一个员工,因此属于HAS_MANY关联;

每个员工可以同时在多个项目组,每个项目组同时有多个员工,因此属于MANY_TO_MANY关联;

分析清楚数据表之前的关联关系后,我们才可以进行关联定义和关联 *** 作。

数据库:

两个数据库及其(数据)表之间的数据的相互依赖和影响关系。

比如现有某学校三个数据表:学生(学号,姓名),课程(课程名,课程编号),选课(学号,课程号,成绩)。选课表中的“学号”,“课程号”必须是另外两个表中存在的数据,才有意义;而且一旦另外两表中的某一学生或课程被删除,选课表中的相应学号或课程号必须自动删除。这就是一种关联关系。它实际上是保证数据完整性的一种做法。

关联查询是日常工作中常用的查询方式,关联查询sql编写的思路一般如下:1、先确定所连接的表,2、再确定所要查询的字段,3、确定连接条件以及连接方式(表连接分类: 内连接、外连接、交叉连接、自连接)

1、内连接:[inner] join on

分类:等值连接、非等值连接

(1)等值连接: 指使用等号"=“比较两个表的连接列的值,相当于两表执行笛卡尔后,取两表连结列值相等的记录(自然连接是一种特殊的等值连接)(2)非等值连接:指使用”>“或”<"比较两个表的连接列的值,相当于两表执行笛卡尔后,取一个表大于或小于另一个表的连结列值的记录

2、外连接

分类:左外连接、右外连接、全外连接

(1)左外连接:left outer join

连接效果:查询结果包含左、右两个表需要查询的全部行,左侧的表中的全部数据都会被显示出来,但是右侧表的数据,只有和左侧匹配上的数据才会被查询出来!否则显示为null(2)右外连接:right outer join

连接效果:查询结果包含左、右两个表需要查询的全部行,右侧的表中的全部数据都会被显示出来,但是左侧表的数据,只有和右侧匹配上的数据才会被查询出来!否则显示为null(3)全外连接:full/all outer join,查询结果包含左、右两个表需要查询的全部行,对应字段没有值显示null

3、交叉连接

左表中的每一行与右表中的所有行组合,也叫表与表之间做笛卡尔积查询

4、自连接

当前表与自身的连接查询,关键点在于虚拟化出一张表,即给自身的表定义一个别名

以上就是关于多个表关联表查询全部的内容,包括:多个表关联表查询、关系数据库如何查询多表有联系数据、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9395779.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存