【产品名称】
【产品版本】
【问题描述】
我有个3个表关联的查询,现在怎么样能够限制多表关联的顺序哪?我想先让a表和c表关联,再和b表关联
select a.sn,a.no from a left join b on a.sn = b.sn
left join c on a.no = c.no
WHERE a.stus in (“01”,“02”,“03”)
AND c.name = “李正”
现在不管咋个设置hint,都是a表先和b表关联。再和c表关联。请问这个能够指定吗?
【产品名称】
【产品版本】
【问题描述】
我有个3个表关联的查询,现在怎么样能够限制多表关联的顺序哪?我想先让a表和c表关联,再和b表关联
select a.sn,a.no from a left join b on a.sn = b.sn
left join c on a.no = c.no
WHERE a.stus in (“01”,“02”,“03”)
AND c.name = “李正”
现在不管咋个设置hint,都是a表先和b表关联。再和c表关联。请问这个能够指定吗?
你这不是inner join....
不是inner join 是left join,但c表应该等价与inner join。请问这种如何优化哪?我想限制a先和c关联。
LEADINGHint 指定并行查询计划中最先
JOIN哪些表,
LEADING中的表从左到右的顺序,也是
JOIN的顺序。
https://open.oceanbase.com/docs/community/oceanbase-database/V3.1.1/distributed-execution-plan-management-1
但是对外联接不生效。我用了这个,他始终后台自动转换为a和b先关联。
我指定了leading(c,a,b)他始终变成leading(c,(a,b))
麻烦提供一下:
1、当前OB的版本。
2、添加hint后查询语句的文本。
版本是2.2.30
select /*+leading(c,a,b)*/a.sn,a.no from a left join b on a.sn = b.sn
left join c on a.no = c.no
WHERE a.stus in ("01","02","03")
AND c.name = "李正"
2.2.3版本上只有inner join可以调连接顺序,outer去join的顺序调不了。
那请问哪个版本后支持outer join的调整哪?