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

Codeigniterだってサブクエリを使ったJOINが使えちまうんだっ

環境

Codeigniter : 3.1.8

 

はじめに

前回、CodeingterでUnionを使う記事を書きました。

CodeigniterだってUnionを使ったSQLが書けちまうんだっ

今回は、Codeigniterでもサブクエリを使ったJOINが使えるよっていうのを書きます。

もっとも内容はUNIONの時とそんなに変わりませんが・・・

 

サブクエリはQuery Builderを使う!

ここに書いてあります(ステマ

私がCodeigniterでサブクエリを使ったSQLを書くときの方法

サブクエリを使ったJOINを書く

まず厄介なことに、Query Builderのjoin()を使うと、サブクエリがエスケープされてしまいます。
※ 正常な動作です。

そこで、エスケープを止めます。

止め方は、ドキュメントを参照

https://www.codeigniter.com/user_guide/database/query_builder.html?highlight=join#CI_DB_query_builder::join

第4引数でエスケープの有無を設定できるので、ここにFALSEを指定してやります。
あとはもう終わったようなものです。

// 読み込み
$subquery_init = $this->load->database('', TRUE);

//サブクエリ
$subQuery = $subquery_init->select('no', FALSE)->from('tableA')->get_compiled_select();
// 初期化
$subquery_init->reset_query();


// JOINを設定
$this->db->join("($subQuery) AS subT", 'mainT.no = subT.no', 'left', FALSE);

 

いかがでしょうか?

今日はこの辺でー

 

この記事が気に入ったら
いいね ! しよう

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です