1
liprais 2021-12-08 18:44:36 +08:00 via iPhone
sql 的结果集是无序的,除非你用 order by
|
2
djs19920210 OP |
3
djs19920210 OP b 表
|
4
djs19920210 OP 查询结果
|
5
zakokun 2021-12-08 18:51:14 +08:00
你 ab 表的图片是一样的;
具体结果这个你可以 explain 一下,看看用到的索引。因为你的 bid 是 b 表的主键 id ,所以有可能是用 b 的主键索引,因此顺序是按照 b 表的 |
6
Ariver 2021-12-08 18:53:39 +08:00 via iPhone
没有 order by 的时候的顺序是不稳定的。不要依赖这个写逻辑。
|
7
djs19920210 OP |
8
Cihua 2021-12-09 09:46:22 +08:00
STRAIGHT_JOIN ?
|
9
orzwalker111 2021-12-09 13:03:32 +08:00 via iPhone
1 left 不能决定会用左表作为驱动表,驱动表是小表,在决定哪个表做驱动表的时候,应该是两个表按照各自的条件过滤,过滤完成之后,计算参与 join 的各个字段的总数据量,数据量小的那个表,就是“小表”,应该作为驱动表
2 如果有 left 语义,应该将被驱动表字段放在 on ,不要放在 where |
10
orzwalker111 2021-12-09 13:08:50 +08:00 via iPhone
sql 中涉及查询时 a 三个字段,b 两个,b 小表,作为驱动表
|