多表查询

多表查询

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

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

​ 连接查询

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

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

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

select * from 主表名 inner join 从表 On 从表.外键=主表.主键;
-- 显示内连接,inner可省略不写
  1. 外连接:
  • 左外连接:相当于查询A表所有数据和交集部分的数据
select 字段列表 from1 left [outer] join2 on 条件;

  • 右外连接:相当于查询B表所有数据和交集部分的数据
select 字段列表 from1 right [outer] join2 on 条件;

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

  1. 子查询

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

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

  1. 单行单列:作为条件值,使用 = != > <等进行条件判断
select 字段列表 fromwhere 字段名 = (子查询);
  1. 多行单列:作为条件值,使用In等关键字进行条件判断
select 字段列表 fromwhere 字段名 in (子查询);
  1. 多行多列
select 字段列表 from (子查询) where 条件;
posted @   萧何i  阅读(225)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示