0

レポートを作成するために、さまざまなテーブルからさまざまなデータを選択する MySQL クエリがあります。例:

SELECT
  u.id,
  u.first_name,
  u.last_name,
  (select count(*) from monkeys where owner_id = u.id) as pet_monkeys,
  ((select count(*) from speeding_tickets where owner_id = u.id) + (select count(*) from parking_tickets where owner_id = u.id)) as moving_violations,
FROM
  user as u
WHERE
  u.id = 12345

実際のコードには、さまざまなテーブルから統計情報を取得する約 20 のサブセレクトがあります。このクエリも悪夢のように遅いです。

上記のクエリを JOIN や UNION などで整理するより良い方法はありますか?

4

1 に答える 1