ThinkPHP多表联合查询的常用方法


Posted in PHP onMarch 24, 2020

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联表查询的方法

$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();

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 PHP
php下将多个数组合并成一个数组的方法与实例代码
Feb 03 PHP
PHP与C#分别格式化文件大小的代码
May 14 PHP
PHP curl 并发最佳实践代码分享
Sep 05 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
php中数字0和空值的区别分析
Jun 05 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
Smarty简单生成表单元素的方法示例
May 23 PHP
Laravel中间件实现原理详解
Oct 09 PHP
php 获取文件行数的方法总结
Oct 11 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 #PHP
ThinkPHP查询中的魔术方法简述
Jun 25 #PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 #PHP
Zend Framework页面缓存实例
Jun 25 #PHP
非常好用的Zend Framework分页类
Jun 25 #PHP
PHP生成等比缩略图类和自定义函数分享
Jun 25 #PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
Jun 25 #PHP
You might like
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
PHP 文件上传限制问题
2019/09/01 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
基于jQuery的js分页代码
2010/06/10 Javascript
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
JavaScript实现图片懒加载(Lazyload)
2016/11/28 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
Python 控制终端输出文字的实例
2019/07/12 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
2020/06/04 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
Python实现粒子群算法的示例
2021/02/14 Python
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
数字天堂软件测试面试题
2012/12/23 面试题
费用会计岗位职责
2014/01/01 职场文书
研究生毕业鉴定
2014/01/29 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
KTV门卫岗位职责
2014/10/09 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书