BETA

【Laravel 5.7】クエリビルダで select * from (select * from hoge) as x where ... をしたい

投稿日:2019-02-21
最終更新:2019-02-21

結局SQLを考えてたら表題の件をする必要はなかったわけだけど、実現方法をメモしておく。

結論

$from_table = User::where('company_id','=',$company_id);  
$sql = getEloquentSqlWithBindings($from_table);  
$result = \DB::table(\DB::raw('('.$sql.') as x'))  
        ->where('x.company_id','=',$company_id)  
        ->get();

getEloquentSqlWithBindings についてはstackoverflow先生を参照した。
https://stackoverflow.com/questions/20045732/how-can-i-get-the-raw-query-string-from-laravels-query-builder-before-executing

toSqlだとプレースホルダ(?)が残った状態で出力されるので、こうするしかないのかな。
もっといい方法をご存知の方いたら教えてください。。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

とある中小企業の社内SEの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!