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

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' );

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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。

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

时间: 2024-11-08 18:52:24

ThinkPHP多表联合查询的常用方法_php实例的相关文章

Symfony2联合查询实现方法_php实例

本文实例讲述了Symfony2联合查询实现方法.分享给大家供大家参考,具体如下: 1.yml文件 Acme\MspadminBundle\Entity\MspArticle: type: entity table: msp_article manyToOne: Channel: targetEntity: MspChannel inversedBy: Articles joinColumn: name: channel_id referencedColumnName: channel_id Us

Yii多表联合查询操作详解_php实例

本文针对Yii多表联查进行汇总描述,供大家参考,具体内容如下 1.多表联查实现方法 有两种方式一种使用DAO写SQL语句实现,这种实现理解起来相对轻松,只要保证SQL语句不写错就行了.缺点也很明显,比较零散,而且不符合YII的推荐框架,最重要的缺点在于容易写错. 还有一种便是下面要说的使用YII自带的CActiveRecord实现多表联查 2. 整体框架 我们需要找到一个用户的好友关系,用户的信息放在用户表中,用户之间的关系放在关系表中,而关系的内容则放在关系类型表中.明显的我们只需要以关系表为

ThinkPHP视图查询详解_php实例

ThinkPHP提供的视图查询应用功能十分强大,用户利用视图查询功能可以将多个数据表的字段内容按需要进行指定和筛选,组织成一个基于这些数据表的视图模型,然后就可以通过该模型直接进行多表联合查询,非常方便和简单. 例如在项目中,我们定义有三个表: user          用户基础表, user_info   用户详细信息表, dept          部门分类表 现在我们需要获取某个用户信息, 该信息要包括用户的帐号名称和相关资料与及所在部门的名称, 这时候我们可以利用视图查询进行处理. 下

cakephp2.X多表联合查询join及使用分页查询的方法

本文实例讲述了cakephp2.X多表联合查询join及使用分页查询的方法.分享给大家供大家参考,具体如下: 格式化参数: public function getconditions($data){ $this->loadModel("Cm.LoginHistory"); $conditions = array(); foreach ($data as $key=>$val){ if($key=='start_date'){ $conditions['LoginHistor

link中如何跨数据库和内存表联合查询?如何同时判断列表中多个元素的存在性?

问题描述 link中如何跨数据库和内存表联合查询?如何同时判断列表中多个元素的存在性? link中如何跨数据库和内存表联合查询?如何同时判断列表中多个元素的存在性? 解决方案 直接用数组是可以的. int[] ids = { 1, 2, 3, 4, 5 }; var query = from x in db.Table where ids.Contains(x) select x;

link中内存表和数据库表联合查询怎么做?为什么提示invaild invoke?

问题描述 link中内存表和数据库表联合查询怎么做?为什么提示invaild invoke? link中内存表和数据库表联合查询怎么做?为什么提示invaild invoke? 解决方案 检查下是不是访问了null的对象?

sql server-SQLSERVER 结构相同表 联合查询 分页

问题描述 SQLSERVER 结构相同表 联合查询 分页 1C 两张表:HistoryOrders.Orders结构完全一样,每天3天将Orders中的数据导入到了HistoryOrders中.数据量挺大,平均一天的数据在10W以上. 需求:根据其中某一列(例如会员ID)Group,查询统计数据(总金额....),并且是任意时间段(这里可能就会跨两个表)的数据分页查询.问题:怎样查能实现而且效率高.怎样统计总量. 解决方案 简单的做法你这里就是两个表数据查询结果的union合集后再统计考虑His

mysql-PHP MYSQL 两表联合查询问题

问题描述 PHP MYSQL 两表联合查询问题 现在有两个表,第一个201411,第二个user_list, 第一个是存放用户相关的数据,第二个是存放登录用户名和密码的信息. 他们有一个共有的字段:username, 现在要如何才能调用和显示在登陆了user_list的账号(username)的201411这张表里面的其他信息. 解决方案 SELECT T2.* FROM user_list T1 INNER JOIN 201411 T2 ON T1.username = T2.username

sql中怎样在多表联合查询后的表中进行增删改操作,新手求大神详细讲解

问题描述 sql中怎样在多表联合查询后的表中进行增删改操作,新手求大神详细讲解 我在C#的winform的DataGridView中显示联合查询的结果,下面就是4张表的联合查询的语句,我需要在DataGridView显示的表中做删除操作,只需要知道删除的sql语句就行,用存储过程也好,级联删除也好,希望详细,我已经在这个问题上困扰很久了,万分感谢! 解决方案 在做C#桌面程序时,我们通常会遇到删除dataGridview中选中的一和或都多行数据,在网上查了好多方法,有些只能删除dataGridv