refactor: 更改子查询为join
This commit is contained in:
@@ -6,75 +6,91 @@
|
|||||||
|
|
||||||
<select id="selectCourseByCollect" resultType="com.sqx.modules.course.entity.Course">
|
<select id="selectCourseByCollect" resultType="com.sqx.modules.course.entity.Course">
|
||||||
SELECT
|
SELECT
|
||||||
MAX(u.update_time) AS produceEndTime,
|
MAX(u.update_time) AS produceEndTime,
|
||||||
c.*,
|
c.*,
|
||||||
d1.course_details_name AS courseDetailsName,
|
d.course_details_name AS courseDetailsName,
|
||||||
d1.course_details_id AS courseDetailsId,
|
d.course_details_id AS courseDetailsId,
|
||||||
COUNT(d2.course_details_id) AS courseDetailsCount
|
cd.course_details_count AS courseDetailsCount
|
||||||
FROM
|
FROM
|
||||||
course_collect u
|
course_collect u
|
||||||
LEFT JOIN
|
LEFT JOIN course c ON u.course_id = c.course_id
|
||||||
course c ON u.course_id = c.course_id
|
LEFT JOIN (
|
||||||
LEFT JOIN
|
SELECT
|
||||||
course_collect cc1 ON cc1.course_id = u.course_id
|
cc.course_id,
|
||||||
AND cc1.classify = 3
|
cc.user_id,
|
||||||
AND cc1.user_id = #{userId}
|
d.course_details_name,
|
||||||
LEFT JOIN
|
d.course_details_id
|
||||||
course_details d1 ON cc1.course_details_id = d1.course_details_id
|
FROM
|
||||||
LEFT JOIN
|
course_collect cc
|
||||||
course_details d2 ON d2.course_id = c.course_id
|
LEFT JOIN course_details d ON cc.course_details_id = d.course_details_id
|
||||||
WHERE
|
WHERE
|
||||||
u.user_id = #{userId}
|
cc.classify = 3
|
||||||
AND c.course_id IS NOT NULL
|
AND cc.user_id = #{userId}
|
||||||
AND u.classify = #{classify}
|
|
||||||
GROUP BY
|
|
||||||
u.course_id, c.course_id
|
|
||||||
ORDER BY
|
ORDER BY
|
||||||
produceEndTime DESC;
|
cc.update_time DESC
|
||||||
|
) AS d ON u.course_id = d.course_id
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
d.course_id,
|
||||||
|
COUNT(*) AS course_details_count
|
||||||
|
FROM
|
||||||
|
course_details d
|
||||||
|
GROUP BY
|
||||||
|
d.course_id
|
||||||
|
) AS cd ON c.course_id = cd.course_id
|
||||||
|
WHERE
|
||||||
|
u.user_id = #{userId}
|
||||||
|
AND c.course_id IS NOT NULL
|
||||||
|
AND u.classify = #{classify}
|
||||||
|
GROUP BY
|
||||||
|
u.course_id
|
||||||
|
ORDER BY
|
||||||
|
produceEndTime DESC
|
||||||
|
|
||||||
|
|
||||||
<!-- SELECT
|
|
||||||
MAX( u.update_time ) AS produceEndTime,
|
<!-- SELECT
|
||||||
c.*,
|
MAX( u.update_time ) AS produceEndTime,
|
||||||
(
|
c.*,
|
||||||
SELECT
|
(
|
||||||
d.course_details_name
|
SELECT
|
||||||
FROM
|
d.course_details_name
|
||||||
course_collect cc
|
FROM
|
||||||
LEFT JOIN course_details d ON cc.course_details_id = d.course_details_id
|
course_collect cc
|
||||||
WHERE
|
LEFT JOIN course_details d ON cc.course_details_id = d.course_details_id
|
||||||
d.course_id = u.course_id
|
WHERE
|
||||||
AND cc.classify = 3 and cc.user_id=#{userId}
|
d.course_id = u.course_id
|
||||||
ORDER BY
|
AND cc.classify = 3 and cc.user_id=#{userId}
|
||||||
cc.update_time DESC
|
ORDER BY
|
||||||
LIMIT 1
|
cc.update_time DESC
|
||||||
) AS courseDetailsName,
|
LIMIT 1
|
||||||
(
|
) AS courseDetailsName,
|
||||||
SELECT
|
(
|
||||||
d.course_details_id
|
SELECT
|
||||||
FROM
|
d.course_details_id
|
||||||
course_collect cc
|
FROM
|
||||||
LEFT JOIN course_details d ON cc.course_details_id = d.course_details_id
|
course_collect cc
|
||||||
WHERE
|
LEFT JOIN course_details d ON cc.course_details_id = d.course_details_id
|
||||||
d.course_id = u.course_id
|
WHERE
|
||||||
AND cc.classify = 3 and cc.user_id=#{userId}
|
d.course_id = u.course_id
|
||||||
ORDER BY
|
AND cc.classify = 3 and cc.user_id=#{userId}
|
||||||
cc.update_time DESC
|
ORDER BY
|
||||||
LIMIT 1
|
cc.update_time DESC
|
||||||
) AS courseDetailsId,
|
LIMIT 1
|
||||||
( SELECT count(*) FROM course_details d WHERE d.course_id = c.course_id ) AS courseDetailsCount
|
) AS courseDetailsId,
|
||||||
FROM
|
( SELECT count(*) FROM course_details d WHERE d.course_id = c.course_id ) AS courseDetailsCount
|
||||||
course_collect u
|
FROM
|
||||||
LEFT JOIN course c ON u.course_id = c.course_id
|
course_collect u
|
||||||
WHERE
|
LEFT JOIN course c ON u.course_id = c.course_id
|
||||||
u.user_id = #{userId}
|
WHERE
|
||||||
AND c.course_id IS NOT NULL
|
u.user_id = #{userId}
|
||||||
AND u.classify = #{classify}
|
AND c.course_id IS NOT NULL
|
||||||
GROUP BY
|
AND u.classify = #{classify}
|
||||||
u.course_id
|
GROUP BY
|
||||||
ORDER BY
|
u.course_id
|
||||||
produceEndTime DESC
|
ORDER BY
|
||||||
-->
|
produceEndTime DESC
|
||||||
|
-->
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user