一条偷懒的鱼 2021-12-14 08:09 采纳率: 100%
浏览 41
已结题

使用左连接时,怎样确定主表和子表?

有时候使用left join 时不知道用A表关联B表,还是用B表关联A表,应该怎样考虑这个问题,求解

  • 写回答

3条回答 默认 最新

  • oldmao_2000 人工智能领域新星创作者 2021-12-14 08:17
    关注

    是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有查询信息列出,而右表只列出满足ON后面条件的部分信息。
    例如:你的学生表里面有张三、李四两个学生,只有张三填了院系信息,李四没填,以学生表做主表左连接院系表得到结果就是:
    张三 计算机系
    李四 NULL
    此时应该是:学生表 left join 院系表 on 学生表.院系id=院系表.院系id,相当于左表的信息会全部列举出来(两个学生),另外的右表则只列出满足条件的信息(只有张三有满足on条件的信息)
    当然如果是内连接:学生表 inner join 院系表 on 学生表.院系id=院系表.院系id,得到结果就是:
    张三 计算机系

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • CSDN专家-sinJack 2021-12-14 08:11
    关注

    这个要看具体场景,左连接是以左表作为主表,来与其他表进行关联查询。(当左表匹配不到右表时,右表字段显示为空)
    如:查询学生信息及所在班级
    所有的学生信息必须都显示,所以学生表作为主表。
    学生表中存在的班级字段,在班级表中找不到,则查询出来的学生记录中,班级字段为空。
    外连接定义:
    在做关联查询时,我们所需要的数据,除了那些满足关联条件的数据外,还有不满足关联条件的数据。此时需要使用外连接。
    会涉及到两个概念:
    驱动表(主表):除了显示满足条件的数据,还需要显示不满足条件的数据的表
    从表(副表):只显示满足关联条件的数据的表

    评论 编辑记录
  • 於黾 2021-12-14 08:43
    关注

    如果是inner join,那两边就对等了,反正只要不满足on条件,就不显示数据
    如果是左连接或者右连接,那么主表不管满足不满足条件都显示数据,而子表只有匹配上主表的部分才连接
    那么你到底哪个表想要显示完整的数据,哪个就作为主表呗
    如果都想显示,就需要full join

    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日
  • 创建了问题 12月14日

悬赏问题

  • ¥15 matlab最小二乘法拟合非线性曲线提问
  • ¥15 电脑锁屏时vba运行SAP,excel数据不能复制到SAP
  • ¥50 74LS系列 74LS00 74LS04设计一个RS485电路(关键词-差分)
  • ¥30 各位help写一下代码
  • ¥15 在运行SDEdit模型下载不了
  • ¥15 求51控制l298n驱动的小车中超声波避障怎么写
  • ¥15 电脑连上WIFI却用不了
  • ¥30 MATLAB在RLC电路的固有响应和阶跃响应GUI仿真报告
  • ¥15 hyper-v出现的问题
  • ¥15 有能用的可加酬金,求可以批量下载懒人听书的软件,能登录自己帐号的。