mysql数据库两表关联,【mysql两表关联查所有数据】

bc3f9276acf88283a0569b9b9ef9ee92.png

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

关联是使用SELECT 操作表的SQL语言的一种操作机制,用于联系两个或多个表。 SELECT是SQL中的查询语句,用于查询数据库中的数据。将SELECT和关联结合起来会产生一个关联的查询。

假设一个班级有30名学生,则每个学生都有自己的姓名,学生编号,班级,班主任等。可以发现,每个班级的姓名和学生编号是唯一的,班主任,班主任电话和其他信息由学生共享。现在,如果您要将此类的信息存储在数据库中,则有两种存储方法。

①创建一个表,并将数据存储在该表中,如下所示。

班主任

课堂教师电话

学生姓名

学生证

六年制

阿福

13131313131

年轻人

1

六年制

阿福

13131313131

大熊熊

2

六年制

阿福

13131313131

静香

3

②创建多个表并在分类后存储数据,如下所示。

(1)

班主任

课堂教师电话

六年制

阿福

13131313131

(2)

学生姓名

学生证

年轻人

1

六年制

大熊熊

2

六年制

静香

3

六年制

为了便于说明,将不会编写30个学生信息。可以发现,将数据存储在表中可以提高读取表的可读性,但是开发人员会非常麻烦,因为表中的前三列信息完全相同。如果有30条数据,则开发人员必须重复填写相同的信息,这样麻烦就会出错。从方法②看,它对开发人员非常友好,只重复一列。并且方法②的优点在于,如果教师改变了手机号码,则只需要修改表(1)中的手机号码,而不是像方法①那样一一修改。方法②很方便,那么如何查询这样的表呢?

现在,我们在实际数据库中设计两个表。为了方便SQL操作,我们将列的键设置为英文字母。

(1)类信息构建代码

老师

移动

六年制

阿福

13131313131

(2)学生信息构建代码

名称

id

年轻人

1

六年制

大熊熊

2

六年制

静香

3

六年制

现在我们需要查看ID为1的学生信息

执行结果如下

老师

移动

名称

id

六年制

阿福

13131313131

年轻人

1

76f927b8979dba220a95cc768c874bbb.png

上面的结果实际上在数据库操作过程中分为以下三个步骤:

(1)建立笛卡尔积

该语句指定classinfo和stuinfo这两个表之间的关联,并且系统根据这两个表生成笛卡尔乘积。根据此笛卡尔积生成的表,我认为是这样的:

老师

移动

名称

id

六年制

阿福

13131313131

年轻人

1

六年制

阿福

13131313131

大熊熊

2

六年制

阿福

13131313131

静香

3

为了更直观地表示笛卡尔积

classinfo现在更改为

老师

移动

六年制

阿福

13131313131

六年级的第二堂课

True

12121212121

这时,获得了classinfo和stuinfo的笛卡尔积,结果如下。

老师

移动

名称

id

六年制

阿福

13131313131

年轻人

1

六年制

阿福

13131313131

大熊

2

六年制

阿福

13131313131

静香

3

六年级的第二堂课

True

12121212121

年轻人

1

六年级的第二堂课

True

12121212121

大熊

2

六年级的第二堂课

True

12121212121

静香

3

如您所见,进行笛卡尔运算实际上是通过行乘法关联两个表,使一列具有相同的名称。

(2)过滤器

通过此过滤语句,系统挑选出classinfo.class和stuinfo.class中具有相同键值的行,并且id列中的键值是1。过滤后,系统会生成一个中间表,该中间表不是对用户可见。

老师

移动

名称

id

六年制

阿福

13131313131

年轻人

1

(3)选择并返回给用户

这时,SELECT选择如上,返回的表如下。

老师

移动

名称

六年制

阿福

13131313131

年轻人

这时,您可以获得学生编号为1的学生的所有信息。

假设现在有了第三个表,该表存储了班主任的年龄和性别信息,我们期望得到以下结果:

老师

移动

年龄

性别

名称

id

每六年一堂课

阿福

13131313131

31

男性

年轻人

1

那么我们如何使用SELECT获得这样的结果?

在这里,我们必须了解多表关联的工作机制。像两个表一样,多表查询实际上是按顺序组合要查询的表,然后生成两个表和第三个表的笛卡尔积,最后根据过滤和选择操作用户返回结果。

第三个表语句如下。

老师

年龄

性别

阿福

31

男性

True

35

男性

白雪

25

女性

如上所述,将生成一个3X2X3笛卡尔表,然后对其进行过滤,选择并返回给用户。

操作语句如下。

最终结果如下所示。

f11bc3ffa9d3a63e4960f0293baeeea0.png

关联查询与构建表的方式有关。使用数据分类构建表就像玩书一样。第一个显示是目录。目录包含多个章节,而一个章节包含很多知识。点。我们需要学习的是将数据逐层包装而不是制作一张巨大的表的想法。相关查询不仅包括本文提到的查询,还包括左外部连接(左连接)查询,右外部连接(右连接)查询,内部连接查询和其他查询方法,它们在实践中适用于不同的场景。

63094048813)]

关联查询与构建表的方式有关。使用数据分类构建表就像玩书一样。第一个显示是目录。目录包含多个章节,而一个章节包含很多知识。点。我们需要学习的是将数据逐层包装而不是制作一张巨大的表的想法。相关查询不仅包括本文提到的查询,还包括左外部连接(左连接)查询,右外部连接(右连接)查询,内部连接查询和其他查询方法,它们在实践中适用于不同的场景。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值