sql查询多表联查

Mapper.xml文件:

<resultMap id="VideoDetailResultMap" type="Video">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="title" jdbcType="VARCHAR" property="title"/>
<result column="detail" jdbcType="VARCHAR" property="id"/>
<result column="cover_img" jdbcType="VARCHAR" property="coverImg"/>
<result column="price" jdbcType="INTEGER" property="price"/>
<result column="point" jdbcType="DOUBLE" property="point"/>

<collection property="chapterList" ofType="Chapter">

<id column="chapter_id" jdbcType="INTEGER" property="id"/>
<result column="chapter_title" jdbcType="VARCHAR" property="title"/>
<result column="ordered" jdbcType="INTEGER" property="ordered"/>
<result column="chapter_create_time" jdbcType="TIMESTAMP" property="createTime"/>

<collection property="episodeList" ofType="Episode">

<id column="episode_id" jdbcType="INTEGER" property="id"/>
<result column="episode_title" jdbcType="VARCHAR" property="title"/>
<result column="free" jdbcType="INTEGER" property="free"/>
<result column="num" jdbcType="INTEGER" property="num"/>
<result column="episode_ordered" jdbcType="INTEGER" property="ordered"/>
<result column="episode_create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="play_url" jdbcType="VARCHAR" property="playUrl"/>
</collection>


</collection>
</resultMap>

<select id="findDetailById" resultMap="VideoDetailResultMap">
SELECT

v.id,v.title,v.detail,v.cover_img,v.price,v.point,
c.id as chapter_id,c.title as chapter_title,c.ordered,c.creat_time as chapter_create_time,
e.id as episode_id,e.title as episode_title,e.free,e.num,e.ordered as episode_ordered,e.creat_time as episode_create_time,e.play_url

from video v

left JOIN chapter c ON v.id = c.video_id

LEFT JOIN episode e ON c.id = e.chapter_id

WHERE v.id = #{video_id}

ORDER BY c.ordered,num ASC
</select>
posted @ 2021-12-01 20:04  智慧搬运工  阅读(58)  评论(0)    收藏  举报