SQLでできるかと聞かれれば出来ます。
sql
1WITH c AS (
2 SELECT
3 name
4 FROM
5 ( SELECT 'John' AS name ) a
6 UNION ALL
7 SELECT
8 name
9 FROM
10 ( SELECT 'Jane' AS name ) b
11)
12SELECT
13 c.name AS name
14FROM
15 c
16WHERE
17 c.name = 'John'
18;
Larabelのクエリビルダでも出来ないことはないようです。
Stackoverflowで似たような質問が投稿されているので参考になると思います。
Laravel has no native support for common table expressions.
I've created a package for it: https://github.com/staudenmeir/laravel-cte
You can use it like this:
php
1$query = DB::table('table1')->select('id');
2
3$result = DB::table('table2')
4 ->withExpression('main', $query)
5 ->whereIn('table2.id', DB::table('main')->select('id'))
6 ->get();
postgresql - How to use WITH clause in Laravel Query Builder - Stack Overflow
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/10 01:53