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