2

mysql ステートメントを laravel クエリ ビルダーに変換しようとしています。次のクエリでは、3 つのテーブルを UNION した結果からフェッチされた列に対して GROUP BY と ORDER BY を実行しようとしています。

  • スタッフ_タスク_履歴_キャリブレーション
  • staff_task_history_samples
  • staff_task_history_measures

あなたはそれに似たものに出くわしたことがありますか?はいの場合、私の問題に光を当てていただけますか?

SELECT staff_name, task_id, task_type, task_desc, SUM(task_multiplier) 
FROM 
(
    (
    select CONCAT(S.first_name," ",S.last_name) as staff_name, 
    `STHC`.`task_id`, IFNULL(T.type, "-") as task_type, 
    `T`.`description` as `task_desc`, 
    STHC.task_multiplier
    from `staff_task_history_calibrate` as `STHC` 
    inner join `staffs` as `S` on `STHC`.`staff_id` = `S`.`staff_id` inner join `tasks` as `T` on `STHC`.`task_id` = `T`.`id` 
    ) 
    union 
    (
    select CONCAT(S.first_name," ",S.last_name) as staff_name, 
    `STHS`.`task_id`, IFNULL(T.type, "-") as task_type, 
    `T`.`description` as `task_desc`, 
    STHS.task_multiplier
    from `staff_task_history_samples` as `STHS` 
    inner join `staffs` as `S` on `STHS`.`staff_id` = `S`.`staff_id` inner join `tasks` as `T` on `STHS`.`task_id` = `T`.`id`
    ) 
    union 
    (
    select CONCAT(S.first_name," ",S.last_name) as staff_name, 
    `STHM`.`task_id`, IFNULL(T.type, "-") as task_type, 
    `T`.`description` as `task_desc`, 
    STHM.task_multiplier
    from `staff_task_history_measures` as `STHM` 
    inner join `staffs` as `S` on `STHM`.`staff_id` = `S`.`staff_id` inner join `tasks` as `T` on `STHM`.`task_id` = `T`.`id`
    )
) combined_tables
GROUP BY staff_name, task_type, task_desc
ORDER BY staff_name, task_type, task_desc;
4

1 に答える 1