次の形式の MYSQL クエリがあります。
SELECT
employee.name,
totalpayments.totalpaid
FROM
employee
JOIN (
SELECT
paychecks.employee_id,
SUM(paychecks.amount) totalpaid
FROM
paychecks
GROUP BY
paychecks.employee_id
) totalpayments on totalpayments.employee_id = employee.id
私は最近、これが次の形式ではるかに高速に返されることを発見しました:
SELECT
employee.name,
(
SELECT
SUM(paychecks.amount)
FROM
paychecks
WHERE
paychecks.employee_id = employee.id
) totalpaid
FROM
employee
速度に違いがあり、下位のクエリの方が高速であることに驚きました。サブクエリを独立して実行できるため、開発には上の形式を好みます。
「両方の長所」を得る方法はありますか: 迅速な結果が返され、サブクエリを分離して実行できるか?