外键相同的字段查询
背景
现在有一个备注表:tbl_remark;和一个用户表tbl_user;
其中tbl_remark中的edit_by字段和create_by字段都是用户表中的主键,那么
此时我们如果要查询该备注表的信息的话该如何查询呢?
代码:
<select id="getRemarkByActivityId" parameterType="string" resultMap="com.crm.workbench.domain.ActivityRemark">
select ar.id,
ar.note_content,
ar.create_time,
u1.name as create_by,
ar.edit_time,
u2.name as edit_by,
ar.edit_flag,
activity_id
from tbl_activity_remark ar
join tbl_user u1 on tbl_activity_remark.create_by = tbl_user.id
left join tbl_user u2 on tbl_activity_remark.edit_by = tbl_user.id
where ar.activity_id = #{activityId}
</select>
我一开始懵了一下,其实可以按照取别名的方式,对两个外键分别进行内连接和外连接(这里主要考虑的是create_by一定存在,而edit_by可能为空);然后用不同的’别名.字段’来表示对应的查询结果;