Keifei 2020-10-09 11:28 采纳率: 0%
浏览 47

表关联和子查询效率问题

举个简单的例子

select
a.id
b.name
(select 
comcode 
from 
comlevel
where id = a.id) code
from 
tablea a,
tableb b
where 
a.date = sysdate and
a.id = b.id(+)

其中的comlevel表为什么不放在from后面的关联里,放在关联里用内连接效率一样吗?
还是说这种写法就是因为区分左连接和内连接的?

  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-15 00:50
    关注

    对于这个问题,将comlevel表放在from后面的关联里和放在子查询中的效率并不一定一样,具体需要看具体的数据库优化器的实现。通常来说,将comlevel表放在from后面的关联里可能会提高查询的效率,因为数据库优化器可以利用关联条件进行更好的优化和索引扫描。而将comlevel表放在子查询中的写法,可能会导致数据库需要多次进行查询,降低查询效率。

    而这种写法主要是由于需要区分左连接和内连接的情况,因为在左连接中,仅仅将comlevel表放在from后面的关联里是无法保证查询结果正确的。因此,需要使用子查询来进行关联查询,以保证查询结果的正确性。

    评论

报告相同问题?

悬赏问题

  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图