首先,mybatis本身不会判断是否是多表查询,mybatis的多表查询和单表查询其实没有什么区别,你都需要一个对象接收返回值。
成都创新互联专注于企业网络营销推广、网站重做改版、新昌网站定制设计、自适应品牌网站建设、H5高端网站建设、商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为新昌等各大城市提供网站开发制作服务。
例如:select
u.name
name,p.grade
grade
from
table_1
u,table_2
p
where
u.id
=
p.id。这里你从两张表里查出两个字段name和grade,那么你就需要映射到对应的对象中去。新建一个VO,包含你所要查询的对象,并一一映射即可。
希望可以帮到你。
select * from 表1 left join 表2 on 表1.alarm_ip =表1.ipcaddr
表连接,这个效率最高
一个简单的案例
select 表_1.*,表_2.*
from 表_1,表_2
where
表_1.姓名=表_2.性名
and
表_1.性别='男'
and
表_2.字段336
多表查询
分类: 主要看看两个表之间有什么联系
user1 主键 id (1对多关系)
item 里面有一个字段 user_id
查询非常简单 只需要user1.user1=item .user_id
(b.id) bid 改成 b.id as bid,如果这个地方没有问题的话,就是你listMapString,Object地方没有获取bid这一列数据
多表查询是属于数据库的知识, 按照你说的使用java进行多表查询那就要使用Hibernate,此ORM框架将数据库的关系映射成了java代码的形式。
通过配置映射文件(*.hbm.xml) 设置好关联关系就可以了。也不知道你具体的表结构是什么样子的。
另外:比较简单的 你直接用sql代码的左右连接也可以实现多表查询, 甚至如果你基础差点,可以分成几句sql语句, 逐步完成查找。 也不清楚你的表结构,具体代码就不给出了。
另一张表里会存学生id,两张表用学生id关联
select a.sid, a.name, b.photo from Student a left join Photo b on (a.sid = b.sid) where a.sid = 1234567