mybatis-plus中自定義SQL分頁,關(guān)聯(lián)多表時報未明確定義列

1.網(wǎng)上搜了半天都是說什么原因造成的?

就是你查找的兩張表有重復(fù)字段,SQL語句在查找的時候不知道你的字段是取的哪張表里的,就會報未明確定義列。

select * from table a inner join table b on a.id=b.id where id='3';

這里,他就不知道你的id字段是取的table a表,還是table b表,解決就是在id上添加a或b,看你去哪張表中取字段。

select * from table a inner join table b on a.id=b.id where a.id='3';

2.Mybatis-plus代碼中可直接修改:

但是在mybatis-plus中,我們?nèi)∽侄味际?/p>

QueryWrapper querywrapper=new QueryWrapper();

querywrapper.eq("id","3");

要解決這個問題只需要:querywrapper.eq("a.id","3")

執(zhí)行看一下是不是和這個語句“select * from table a inner join table b on a.id=b.id where a.id='3'”完全一樣。

不要動不動就修改數(shù)據(jù)庫字段,數(shù)據(jù)庫字段是能隨便改的嗎?

3.mybatis-plus中dao層分頁sql

@Select("select? a.*,b.id? "? +

? ? ? ? ? ? ? ?" from table a "? +

? ? ? ? ? ? ? ?" inner join table b "? +

? ? ? ? ? ? ? ?" on a.id=b.id "? +

? ? ? ? ? ? ? ? "${ew.customSqlSegment}? ")

IPage<實體類> selectpage (

? ? ? ? Ipage<實體類> page,

@Param(Constants.WRAPPER)QueryWrapper<實體類>querywrapper)

注意:sql語句一定要注意空格,不然,就可能出現(xiàn)【 b.idfrom】,導(dǎo)致sql語句錯誤。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容