從(cóng)3.0版本開(kāi)始新增了(le)子(↔£©σzǐ)查詢支持,有(yǒu)兩種使用(yòng)方式:
1、使用(yòng)select方法 當select方法¥σ✔的(de)參數(shù)為(wèi)false的(de)時(s>→∞hí)候,表示不(bù)進行(xíng)查詢隻是(shì)•↓返回構建SQL,例如(rú):
// 首先構造子(zǐ)查詢SQL$subQuery = $model->field('id,name')->table('tablename')->group('field')->where($where)->order('status')->select(false);
當select方法傳入false參數(shù)的(de)$∏$↕時(shí)候,表示不(bù)執行(xí≈♣σng)當前查詢,而隻是(shì)生(shēng)成查詢S ♣×☆QL。
2、使用(yòng)buildSql方法
$subQuery = $model->field('id,name')->table('tablename')->group('field')->where($where)->order('status')->buildSql();
調用(yòng)buildSql方法後不(bù)會(huì)進行(xín∏ ®g)實際的(de)查詢操作(zuò),而隻是(shì)≠≠₽生(shēng)成該次查詢的(de)SQL語句(為(wèi™¶)了(le)避免混淆,會(huì)在SQL兩邊加上(s≥★ hàng)括号),然後我們直接在後續的(de)查詢中直接調用(yòng)。
// 利用(yòng)子(zǐ)查詢進行(¶≥xíng)查詢$model->table($subQuery.' a')->where()->order()->select()
構造的(de)子(zǐ)查詢SQL可(kě)用(yòng)于ThinkPHP ε™的(de)連貫操作(zuò)方法,例如(rú)t♦★$∑able where等。




