当前位置: 首页> 教育> 就业 > mysql的inner join和left join使用场景

mysql的inner join和left join使用场景

时间:2025/7/11 23:15:25来源:https://blog.csdn.net/qq_44985699/article/details/141171067 浏览次数:0次

前置说明: inner join和join是同一个语法
下面主要区分什么时候求多集合交集,什么时候取主集合

注意并不是所有场景,都是主表撬动从表。如果数据量特别多,有筛选条件的情况,也可以子表撬动主表。主要是小表撬动大表。
主表和从表的关系,一般是一对多或者多对多。
用户和订单,一对多。
用户和角色,多对多,一个用户充当多个角色,一个角色下有多个用户。

客户表customer
订单表order
中间表c_o

  1. 查询所有用户及订单。用户做主表,用户可能没有订单

select c.,o.
from customer c
left join c_o co on c.id = co.user_id
left join order o on co.oder_od = o.id
order by c.id, o.id

  1. 查询所有订单和用户。取有效并集,只取有关联的数据。没有下过单的用户就不展示了
    select c.,o.
    from customer c
    inner join c_o co on c.id = co.user_id
    inner join on order on co.order_id = o.id
    order by c.id, o.id

  2. 查询某用户的订单信息,一对多,可能没有订单,使用主表优先left join
    select
    from customer c
    left join co on c
    left join order o on c=o
    where c.id = …
    order by o.id

  3. 查询某订单信息,包括用户的基本信息。1 v 1
    订单一般都会有用户信息,使用inner join即可,求取交集
    select
    from order o
    inner join co on o.id = co.orderid
    inner jpin customer c on co.orderID = c.id

关键字:mysql的inner join和left join使用场景

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: