数据库表的连接方式

数据库表的连接方式

连接方式分为内连接(inner join)、外连接(outer join)、交叉连接(cross join)。
外连接又分为左连接(left join)、右连接(right join)、全连接(full join)。

举例:产品表和订单表
产品表( tbl_product_info)

产品编号 (productNo)产品名称(productName)产品类型 (productName)
A产品A球类
B产品B健身器材类
C产品C户外运动类

订单表( tbl_order_info)

订单编号(orderNo)产品编号 (productNo)订单金额(orderAmount)
Or001A100000
Or002B650000
Or003D10000

内连接

连接关键字 inner join,inner 可以省略
进行关联 on 后跟关联条件。
内连接筛选出两个表关联上的数据记录。

-- 隐示内连接写法
select t.productNo,t.productName 
from tbl_product_info p ,tbl_order_info o where p.productNo = o.productNo

-- 显示内连接写法
select t.productNo,t.productName 
from tbl_product_info p (inner) join tbl_order_info o on p.productNo = o.productNo

结果:过滤出左右两表关联上的数据出来。

productNoproductName
A产品A
B产品B

左连接

连接关键字:left join ,left 不可以省略
关联条件用on 连接,以左表为基准
筛选出关联上的数据记录和左表未关联上的数据

select t.productNo,t.productName 
from tbl_product_info p left join tbl_order_info o on p.productNo = o.productNo

结果:左表(left join 关键字左边的表)的数据都会出现。

productNoproductName
A产品A
B产品B
C产品C

右连接

连接关键字:right join ,right 不可省略
关联条件用on 连接,以右表为基准
筛选出关联上的数据记录和右表未关联上的数据

select o.productNo,t.productName 
from tbl_product_info p right join tbl_order_info o on p.productNo = o.productNo

结果:右表(right join 关键字右边的表)的数据都会出现。

productNoproductName
A产品A
B产品B
D

全连接

连接关键字:full join
关联条件用on 连接,以左右表为基准
筛选出关联上的数据记录和左表未关联上的数据、右表未关联上的数据

select t.productNo leftNo,o.productNo rightNo ,t.productName 
from tbl_product_info p full join tbl_order_info o on p.productNo = o.productNo

结果:左右两表的数据都会出现。

leftNorightNoproductName
AA产品A
BB产品B
C产品C
D产品D

交叉连接

连接关键字:cross join ,cross 不可省略
关联条件 只能用where,不能用on

select o.productNo,t.productName 
from tbl_product_info p cross join tbl_order_info o 
where p.productNo = o.productNo

结果:左表过滤出来的每一条数据都与右表每一条数据关联。
数据记录= 左表筛选的数据条数*右表筛选的数据条数

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页