美文网首页
左连接笛卡尔积

左连接笛卡尔积

作者: 帮我的鸵鸟盖个章 | 来源:发表于2020-10-15 14:52 被阅读0次

使用左连接查询时,我们期望左边的表有多少条数据,那就查出来多少条数据。

但有的时候却发现左边的表查出来多条数据,即产生了重复数据,出现笛卡尔积。这是为什么呢?

其实是因为,连接条件的字段在表中不是唯一主键,同一字段的同一值可以重复出现在多条数据,即A表连接B的字段,是一(A)对多(B)的关系。

SQL语句

select odo.* from ord_delivery_order odo
left join ord_delivery_order_details odod
on odo.id = odod.delivery_order_id

执行结果

左连接笛卡尔积.png

在表ord_delivery_order的一条数据可能对于ord_delivery_order_details表的多条数据,且以ord_delivery_order表的ID为关联字段,那么左连接使用该连接条件时则产生笛卡尔积,左边表重复出现多次。

解决办法:

  1. 改为 join

  2. 使用 group by

相关文章

  • 左连接笛卡尔积

    使用左连接查询时,我们期望左边的表有多少条数据,那就查出来多少条数据。 但有的时候却发现左边的表查出来多条数据,即...

  • Oracle学习(2)

    多表查询: 会出现笛卡尔积,为了避免出现笛卡尔积,要使用where 语句对字段进行关联操作 左右连接 (+)在=左...

  • Mysql多表查询

    Mysql多表查询,知识点包括: 笛卡尔积查询[1] 内连接[^2] 外连接(左外连接、右外连接)[^3] uni...

  • SQL

    笛卡尔积 将第一个关系的每个元组与第二个关系的所有元组都进行连接。 自然连接(内连接) 自然连接和笛卡尔积运算都作...

  • 数据库概念

    快速定位核心表 核心表的数据往往是最大的 笛卡尔积和内外连接 内外连接的底层是从两表产生笛卡尔积临时表,内连接筛选...

  • 三、连接查询

    内连接 1、笛卡尔积 语法 无条件筛选 有条件筛选 什么是笛卡尔积?笛卡尔积就是将A和B表中的行任意组合,得到一个...

  • 多表查询

    ### 1\. 笛卡尔积(交叉连接) 笛卡尔积是关系型数据库,进行多表查询的基础 A{a,b,c} B{d,e,f...

  • 多表查询

    1. 笛卡尔积(交叉连接) 笛卡尔积是关系型数据库,进行多表查询的基础A{a,b,c}B{d,e,f,g}A x ...

  • 多表查询

    1. 笛卡尔积(交叉连接) 笛卡尔积是关系型数据库,进行多表查询的基础A{a,b,c}B{d,e,f,g}A x ...

  • 第4章 多表查询

    1. 笛卡尔积(交叉连接) 笛卡尔积是关系型数据库,进行多表查询的基础A{a,b,c}B{d,e,f,g}A x ...

网友评论

      本文标题:左连接笛卡尔积

      本文链接:https://www.haomeiwen.com/subject/citopktx.html