SELECT X,X,X,X FROM A LEFT JOIN B ON a.id = b.a_id GROUP BY b.spell_name ORDER BY b.code
类似于这种查 A 表 但使用 B 表字段做排序和分组的 SQL 该如何添加索引呢?
1
bigNewsMaker 2020-09-29 10:59:17 +08:00
改成 right join,然后在 b 表上加索引?
|
2
fuyufjh 2020-09-29 13:16:11 +08:00
* 改成 inner join ( inner join 可以左右对调,left join 不可以),然后在 b.spell_name 上加索引
* 另外,这是一个典型的分析型查询,建议导到其他分析型数据库里做 |
3
maigebaoer 2020-09-29 13:17:58 +08:00 via Android 1
你先把 b 表 group,order 后的取出来,再和 a 表 join,看看如何?
|
4
hooopo 2020-09-29 13:19:15 +08:00 via Android
一定是先排序后 join 咯
|
5
l00t 2020-09-29 14:48:32 +08:00 1
加在关联条件上,也就是 ID 。group by 的字段不用考虑,这部分不需要索引。
楼上的一些回答简直不懂 SQL,left join 和 right join / inner join 压根不等价,出来的结果集都不一样,能随便换? |