1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Laravel】クエリビルダでサブクエリを CROSS JOIN する方法

Posted at

crossJoinSub メソッドを使う

第一引数にサブクエリを定義したビルダー、第二引数にはエイリアス名(任意の識別子)を記述します。

// サブクエリ
$highPriceFruits = DB::table('fruits')
                   ->select('id AS fruits_id', 'name AS fruits_name'))
                   ->where('price', '>', '500');

// サブクエリを CROSS JOIN する
$users = DB::table('users')
        ->crossJoinSub($highPriceFruits, 'hign_price_fruits')
        ->get();

余談

サブクエリとの結合については、joinSub、leftJoinSub、rightJoinSubメソッドが用意されている旨の内容がドキュメントですぐに見つかりました。

しかしながら、crossJoinに関しては記載がなかったので、用意がないのかなと思ってしまいましたが、そこはさすがのLaravelです。
バージョン 8.x で crossJoinSub メソッドがクエリビルダに追加されたということ。

クエリビルダすごい…

参考文献

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?