忘れないように記録しとこ

カバの樹

[Laravel]JOINでサブクエリを使用する方法

2019年4月26日

はじめに

サブクエリを使った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いいぞ~

 

今日はこの辺でー

 

  • B!