下面由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