资讯动态

Java EE2(第二章:Mybatis多表关系映射-上)

发布时间:2026/8/7 11:33:16 来源:尧图企业网站定制
目录一、多表关系表设计二、一对一三、表连接查询sql内连接左/右外连接一、多表关系表设计项目开发中在进行数据库表结构设计时会根据业务需求以及业务模块之间的关系分析并设计表结构由于业务之间相互关联所以各个表之间也存在着各种联系多表关系主要由以下三种组成一对一多对一(一对多)多对多二、一对一一对一通常表示两张表之间的数据是一一对应关系在实际开发中通常用来做单表的拆分例如用户表基本信息用户id姓名性别手机号邮箱身份信息生日民族身份证号码发证单位身份证有效期(开始时间结束时间)当一张表表示的字段较多且常用的只有基本信息身份信息使用较少的情况下为了提高查询效率可以将一张用户大表拆成两个小表基本信息-user表身份证信息-user_card表此时user表和user_card表就是一对一关系一对一表关系中为了维护数据的一一映射关系通常在一张表中定义一个关联字段通过该字段映射另一张表中的数据id例如user表id,name,sex,mobile,email,card_iduser_card表id,birthday,nationality,idcard,issued,expire_begin,expire_end其中user表的card_id列对应user_card表的id列三、表连接查询sql内连接select别名1.列名1,别名2.列名2,...from表1别名1 inner join表2别名2on连接条件其中inner可以省略内连接查询两个表都有的数据左/右外连接select别名1.列名1,别名2.列名2,...from表1别名1 left join表2别名2on连接条件select别名1.列名1,别名2.列名2,...from表1别名1 right join表2别名2on连接条件左/右外连接查询左/右表所有的数据//1、通过左外连接试下查询所有用户的用户名和生日信息select name,birthdayfrom t_user t1 left join t_user_card t2on t1.card_idt2.id//2、通过内连接查询张三用户的身份证号码select name,idcardfrom t_user t1 inner join t_user_card t2on t1.card_idt2.idwhere name张三//3、通过右外连接查询所有身份证号码、用户名select idcard,namefrom t_user t1 RIGHT JOIN t_user_card t2on t1.card_idt2.id

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价