我有面试问题,可以创建最优化的查询以获得相同的结果。但我不知道,有见识吗?
我已阅读Sub query vs Join, whats more faster ?
我得到的摘要是Join
比sub-query
快,是吗?
SELECT
c.*,
COUNT(DISTINCT d.activity_id) AS cdms
FROM
(
SELECT a.id,
a.name,
a.email,
a.grade,
DATE(a.created_at) AS date,
COUNT(DISTINCT b.serial) AS cdis
FROM
users a
LEFT JOIN
payment b ON a.id = b.user_id
GROUP BY
a.id,
a.name,
a.email,
grade,
date_created_at
) c
LEFT JOIN
activity d
ON c.id = d.user_id
WHERE
date_created_at >= DATE_SUB('2019-01-08', INTERVAL 1 DAY)
GROUP BY
id,
name,
email,
grade,
date,
cdis