目次
はじめに
サブクエリを使ったJOINを書きたい・・・!
思い立ちドキュメントを調べるも記載は無く・・・
解決法が見つからないまま、ゴリゴリ削られる精神(豆腐)
そんなトキあの方の姿が・・・!
環境
Laravel: 5.5
JoinSub関数を使う
Laravelのドキュメントを探しても記載が無かったので直接 Builder.php を覗いてみるとJoinSubの文字が!
使い方
$subSQL = DB::table('role')->toSql(); DB::table('users')->JoinSub($subSQL, 'ROLE', 'users.roleNo', 'ROLE.no')->get(); //selec * from users join ((select * from role) AS ROLE) ON users.roleNo = ROLE.no
サブクエリを使ったLEFT JOINがしたい
そんな時はleftJoinSubを使いましょう!
使い方
$subSQL = DB::table('role')->toSql(); DB::table('users')->leftJoinSub($subSQL, 'ROLE', 'users.roleNo', 'ROLE.no')->get(); //selec * from users left join ((select * from role) AS ROLE) ON users.roleNo = ROLE.no
サブクエリを使ったRight JOINがしたい
もうわかっていますね?
rightJoinSubを使いましょう!
使い方
$subSQL = DB::table('role')->toSql(); DB::table('users')->rightJoinSub($subSQL, 'ROLE', 'users.roleNo', 'ROLE.no')->get(); //selec * from users right join ((select * from role) AS ROLE) ON users.roleNo = ROLE.no
まとめ
生のソースコードを読むとドキュメントに乗ってない関数がたくさんあります。
管理人はphpstormを使っているので、これで一発で見つかります。
phpstormいいぞ~
今日はこの辺でー