關于ThinkPHP多表聯合查詢的常用方法

下面由thinkphp教程欄目給大家介紹thinkphp多表聯合查詢的常用方法,希望對需要的朋友有所幫助!

ThinkPHP中關聯查詢(即多表聯合查詢)可以使用 table() 方法或和join方法,具體使用如下例所示:

1、原生查詢示例:

$Model?=?new?Model(); $sql?=?'select?a.id,a.title,b.content?from?think_test1?as?a,?think_test2?as?b?where?a.id=b.id?'.$map.'?order?by?a.id?'.$sort.'?limit?'.$p->firstRow.','.$p->listRows; $voList?=?$Model->query($sql);

2、join()方法示例:

$user?=?new?Model('user'); $list?=?$user->join('RIGHT?JOIN?user_profile?ON?user_stats.id?=?user_profile.typeid'?);

Thinkphp使用join聯表查詢的方法

立即學習PHP免費學習筆記(深入)”;

$user?=?M('user'); $b_user?=?M('b_user'); $c_user?=?M('c_user'); $list?=?$user->alias('user')->where('user.user_type=1') ??->join('b_user?as?b?on?b.b_userid?=?user.user_id') ??->join('c_user?as?c?on?c.c_userid?=?b.b_userid') ??->order('b.user_time') ??->select();

$user 表的 user_id 等于$b_user表的b_userid;

$c_user表的 c_userid 等于$b_user表的b_userid;

3、table()方法示例:

$list?=?$user->table('user_status?stats,?user_profile?profile')->where('stats.id?=?profile.typeid')->field('stats.id?as?id,?stats.display?as?display,?profile.title?as?title,profile.content?as?content')->order('stats.id?desc'?)->select();

相關推薦:最新的10個thinkphp視頻教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享