在SQL的学习和运用中,有时候我们需要同时在2张及以上的表格中查找我们需要的数据,这时就需要用到多表查询。
首先,我们可以通过相加两张表来得到两张表中的所有信息
表的相加,我们需要用到(union)
具体sql语句为:
select<列名>,<列名>,…
from <表名1>
union
select <列名>,<列名>,...
from <表名2>
输入语句 union all时,可显示出重的行
除了合并表之外,多表查询中我们还会用到联结。
什么是联结呢?联结是吧两个表中你所需要的数据,按照特定的关系关联在一起,并显示在一张表中的过程。
联结分为:交叉联结,内连接,左联结,右联结,全联结
1)交叉联结:把两列数据进行相互匹配,就像下图中这样
可也以理解成想扑克牌这样
交叉联结在实际应用中并不多,但却是其他联结的基础
2)内连接(inner join)
内连接指的是将两个表中相同的部分取出
就像文氏图中展示的这样
SQL语句
select ...
from 表1 as a
inner jion 表2 as b
on a.列名=b.列名;
3)左连接(left join):以左边表格为母表,取出左边表格中的所有数据
文氏图: