问题由来
当对数据库进行级联查询的时候,通常会多表联合查询,这就导致数据库两个不同的表的列名有时会一样,尤其是id。如下
person表
card表
其中c_id是person表的外键,对应card表的主键id,这里我们可以看到他们两的列名id名称一样
数据查询
使用navicat查询id为2的用户,及其card信息
结果
列名id1是为了防止重名,navicat自动给结果取的名字,结果还是正确的
But
使用mybatis查询这条信息时
mapper文件
查询的语句还是和navicat的一样
idea结果
你会发现,查询的是id=2的用户,但是这个用户对应的card的id也变成了2
解决办法
只需将查询语句的列名c.id起个别名cid,把配置文件的colum也改成cid就正确了
结果
原因?请指教