TIDB left join 出现重复列

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:

  • 【问题描述】:我的left join 似乎被转换成了 inner join

    SELECT /+ TIDB_HJ(p,c)/ p.ID AS id, p.PLAN_NAME AS planName, c.ID AS isd, IF(ISNULL(c.ID),0,1) AS isCited FROM oss_plan p LEFT JOIN oss_channel_plan c ON p.ID = c.PLAN_ID WHERE p.IS_DELETED = 0

两张表 mysql 是没有问题的,出现的问题有两个,on条件似乎失效了,p表关联c表,c表中没有c.id应该是null,结果有值??? 还出现列重复

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

  1. 版本是多少? 描述问题的时候麻烦写一下,多谢
  2. 什么是两张表mysql是没问题的?是结果和mysql不一致吗? 能否展示一下mysql的结果?
  3. c表中没有c.id应该是null? (1) 麻烦上传下两个表的表结构 (2) 举一个例子来检查下, 比如说上图结果你觉得哪一个应该是isd为null的记录? 请查看这个记录的信息 select c.PLAN_ID , c.ID from oss_channel_plan c where c.PLAN_ID=‘代入上图的某个id值’; 帮忙展示下,多谢
  4. 从结果看,isd不是空值,iscited为1是正常的,没有一个iscited是null的值。哪里觉得有问题? image