其他分享
首页 > 其他分享> > 多表查询

多表查询

作者:互联网

多表查询

我们一般用select * from 表名的方式进行单表数据的查询,但是多表查询不是在表名后面再加一个表名,这样查询出来的数据会存在一个笛卡尔积的情况(笛卡尔积:取A ,B集合所有组合),会造成数据的重复以及数据的不准确

多表查询:就是从多张表查询数据

​ 连接查询

		1. 内连接:相当于查询AB两张表的交集数据

有AB两张表,A表的某个字段是B表的主键,那么这两张表就构成了关联关系,内连接就是通过查询语句后面加一个where条件的方式完成查询,如:

select * from 主表名 where 从表.外键=主表.主键;
-- 隐式内连接

select * from 主表名 inner join 从表 On 从表.外键=主表.主键;
-- 显示内连接,inner可省略不写
  1. 外连接:
select 字段列表 from 表1 left [outer] join 表2 on 条件;

select 字段列表 from 表1 right [outer] join 表2 on 条件;

以上左右外连接的outer关键字可以省略不写

  1. 子查询

概念:查询中嵌套另外一个查询,我们称嵌套进去的查询语句为子查询

子查询根据查询结果的不同作用也不同,可以分为:

  1. 单行单列:作为条件值,使用 = != > <等进行条件判断
select 字段列表 from 表 where 字段名 = (子查询);
  1. 多行单列:作为条件值,使用In等关键字进行条件判断
select 字段列表 from 表 where 字段名 in (子查询);
  1. 多行多列
select 字段列表 from (子查询) where 条件;

标签:多表,查询,主表,where,连接,select
来源: https://www.cnblogs.com/xiaoheyyds/p/16253399.html