SQL基础9--多表查询(2)

目录

1、多表等值查询

2、内联结 A表 INNER JOIN  B 表  on  条件   


参考表:(注意 class表中和上次比atom6的名字改为了atom7 方便理解)

学员信息表:person
id name      age
1 atom  19
2 atom2 19
3 atom3 21
4 atom4 21
5 atom5 25
6 atom6 25

班级列表:class
id name      class
1 atom  class1
2 atom2 class1
3 atom3 class2
4 atom4 class2
5 atom5 class3
6 atom7 class4

1、多表等值查询

如果我们想查出person表和class表都存在的学员的姓名和年龄,应该怎么查?

这时候就可以用到多表联结了,这时候只需要知道两个表中相同的字段做下关联就可以了

SELECT person.name,person.age,class.class from person,class where person.name = class.name 

从人员表和班级表中搜索出两个表都有的信息,因为atom6只在成绩表中出现了,并没有出现在人员表中(可以理解成class表中的atom6是临时进来的,还没有在person表中加入信息)

2、内联结 A表 INNER JOIN  B 表  on  条件   

还是上面的问题

如果我们想查出person表和class表都存在的学员的姓名和年龄,应该怎么查?

同样可以使用内联结的办法去写出

SELECT person.name,person.age,class.class from person INNER JOIN class on person.name = class.name

这个和上面1 得到的结果是完全相同的,只不过内联结的过滤是on 而等值联结的过滤语句是where

内联结的用法:内联结主要是需要查找两张表同时存在的数据。

那如果我们想以班级表为主要数据,查出和人员表相结合的数据应该怎么办,这时候就需要用的外联结了,外联结下次会总结下

 

Guess you like

Origin blog.csdn.net/weixin_42893232/article/details/120962222