次のようにEloquent構文に変換するにはどうすればよいですか?私はそこに派生テーブルがあることを知っているので、これについてLaravelの正しい構文がわからないのですか?Laravel - 連結クエリを含む派生テーブルをEloquent構文に変換する方法
SELECT firstname
, CONCAT_WS
(', '
, CASE WHEN years = 0 THEN NULL ELSE CONCAT(years,' years') END
, CASE WHEN months = 0 THEN NULL ELSE CONCAT(months, ' months') END
, CASE WHEN days = 0 THEN NULL ELSE CONCAT(days, ' days') END
) lengthOfService
FROM
(SELECT firstname
, FLOOR(DATEDIFF(CURDATE(),startdate)/365.2425) years
, FLOOR((DATEDIFF(CURDATE(),startdate)/365.2425 - FLOOR(DATEDIFF(CURDATE(),startdate)/365.2425))* 12) months
, CEILING((((DATEDIFF(CURDATE(),startdate)/365.2425 - FLOOR(DATEDIFF(CURDATE(),startdate)/365.2425))* 12)
- FLOOR((DATEDIFF(CURDATE(),startdate)/365.2425 - FLOOR(DATEDIFF(CURDATE(),startdate)/365.2425))* 12))* 30) days
FROM users
) x
EloquentはORMであり、物理リレーショナルテーブルをオブジェクトに変換します。私はそれが派生テーブルに当てはまるとは思わない。ただし、ユーザーテーブルにスコープを追加して、その派生テーブルに絞り込むことができます。 – apokryfos
@apokryfosこれを理論的に 'DB :: raw()'に入れることができますか? – omrakhur
はい、できますが、実際にはEloquentを使用していません。これはクエリビルダーを使用しているだけです。 – apokryfos