TiDB資料庫left join與版本問題

o煙雨瀟瀟o發表於2019-08-15

       TiDB叢集left join及版本問題

                                                                                                        2019-08-14 劉春雷

1、彙總

1.1、情況

TiDB某叢集版本  2.1.2   ,升級至  3.0.1 ,升級無報錯

問題:升級後,業務反應:報表平臺部分任務執行失敗

1.2、問題及解決

問題原因 2.1.2 版本 升級至 3.0.1   版本 後,多於 2個   left join  的SQL執行報錯: ERROR 1105 (HY000): Column xxx . xxx   is ambiguous

測試:  多個inner join無影響

處理: 升級至 3.0.2  解決

注:希望3.0.1 版本的TiDB小夥伴,如果有偏複雜的left  join 場景,要及時升級至3.0.2版本

感謝TiDB官方小夥伴的及時支援,點贊~

2、復現問題

2.1、具體復現

CREATE TABLE `lcl_test` (
`id` int(11) DEFAULT NULL,
`name2` varchar(10) DEFAULT NULL
) ENGINE=InnoDB ;

insert into lcl_test values (1,'a');

insert into lcl_test values (2,'b');

insert into lcl_test values (3,'c')

【查詢SQL】

select  t.id  from
(select id from lcl_test ) t
left join 
(select id from lcl_test ) t1
on  t.id = t1.id
left join
(select id from lcl_test ) t2
on  t.id = t2.id
left join
(select id from lcl_test ) t3
on  t.id = t3.id
left join
(select id from lcl_test ) t4
on  t.id = t4.id ;

【2.1.0.rc2版本,執行正常】

【mysql5.6版本,執行正常】

【3.0.1版本,多於2個left join執行報錯】

【3.0.1 版本 ,left join 個數測試,測試2個left join 可以執行,多餘2個,報錯】

【3.0.1  版本,多個inner join測試,正常執行】

3、處理

3.1、具體處理

升級至 3.0.2  版本 完成

3.2、測試

【3.0.2 版本測試,可以正常執行】



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28823725/viewspace-2653742/,如需轉載,請註明出處,否則將追究法律責任。

相關文章