我已经创建了这个查询,但我认为它可以优化很多。。。但我不知道怎么做?
这是一个查询,它选择了一个学生尚未完成的任务,也选择了计划任务的数量,以及他请求帮助的任务数量。
后来我不想数数,而是要他/她请求帮助的答案的整行,但现在我开始用数数开始,因为这似乎更容易。
有没有人可以告诉我如何优化这个,或者我在哪里可以学到这个?
SELECT
gu.user_id,
notComplete.count AS notComplete,
planned.count AS planned,
helpNeeded.need AS helpNeeded
FROM
`groups_users` gu
LEFT JOIN(
SELECT
a.created_by AS user_id,
COUNT(1) AS 'count'
FROM
`answers` a
WHERE
a.deleted_at IS NULL AND a.completed_at IS NULL AND a.checked_at IS NULL
GROUP BY
a.created_by
) AS notComplete
ON
notComplete.user_id = gu.user_id
LEFT JOIN(
SELECT
a.created_by AS user_id,
COUNT(1) AS 'count'
FROM
`answers` a
WHERE
a.deleted_at IS NULL
GROUP BY
a.created_by
) AS planned
ON
planned.user_id = gu.user_id
LEFT JOIN(
SELECT
a.created_by AS user_id,
COUNT(1) AS need
FROM
`answers` a
WHERE
a.deleted_at IS NULL AND a.requested_help_at IS NOT NULL
GROUP BY
a.created_by
) AS helpNeeded
ON
helpNeeded.user_id = gu.user_id
INNER JOIN `users` u ON
u.id = gu.user_id AND u.type = 'student'
WHERE
gu.group_id = 213
1条答案
按热度按时间szqfcxe21#
请尝试以下操作
尝试下面的第二个问题
如果您只想获得notcomplete的详细信息,您可以将所有必要的条件放入where