group by 以及 join的合作中的底层问题

假设现在有两个表:表A以及表B,表A的结构如下:

create table A(
aid int(10),
bid int(10)
)

表B的结构如下:

create table B(
bid int(10),
info varchar(100),
)

在实际操作中,可能多个aid对应同一个bid,现在执行以下查询语句:

select A.bit,B.info from A join B on B.bid = A.bid group by (A.bid); 

问题是:

  1. 假如数据量充足的情况下.语句实现的过程中,是先实行group by 操作,然后再执行join操作查出数据;还是一边执行select操作,查出A.bid,然后执行join操作查出B.info,最后再执行group by操作呢?

  2. 这两种操作的执行效率有什么不同呢?

阅读 3.1k
2 个回答

sql有问题,查出的B.info是无意义的,group by (A.bid)只能查A.bid以及其他统计函数。。貌似这个sql在oracle中会报错

然后你的问题:我的理解是先join,再对结果集group

mysql explain查看执行计划;但是看你的sql语句没有聚合函数,获取B.info可能会出错哦

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题