CI框架数据库查询之join用法分析

本文实例讲述了CI框架数据库查询之join用法。分享给大家供大家参考,具体如下:

用 A表中的每个ID 去查询这个 ID 在 people 表中的信息。语句如下:

$this->db->from('A');
$this->db->join('B', 'sites.id = B.id');

用 A表中的每个ID 去查询这个 ID 在 B表中的信息。

注意SQL的约定,如果一个列名在二张表中是重复的,你需要在列名前加上表名和一个“."号。因此sites.id在位置桌子中意谓id所在的表是sites。在进行SQL多表查询时,最好把列名进行唯一性的标识,这样可以避免产生岐义,也可以让你自己明了。

如:你执行以下语句

$this->db->select('*');
$this->db->from('blogs');
$this->db->join('comments', 'comments.id = blogs.id');
$query = $this->db->get();

相当于 执行这条sql语句

SELECT * FROM blogs JOIN comments ON comments.id = blogs.id

如果你想要在查询中使用多个连接,可以多次调用本函数。

如果你需要指定 JOIN 的类型,你可以通过本函数的第三个参数来指定。可选项包括:left, right, outer, inner, left outer, 以及 right outer.

$this->db->join('comments', 'comments.id = blogs.id', 'left');
// 生成: LEFT JOIN comments ON comments.id = blogs.id

更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

时间: 2016-05-17

CI(CodeIgniter)框架中的增删改查操作

CodeIgniter的数据函数类在 \system\database\DB_active_rec.php 复制代码 代码如下: <span style="font-size:16px;">class ModelName extends CI_Model {     function __construct()     {         parent::__construct();     } }</span> 连接数据库:$this->load->

新浪SAE云平台下使用codeigniter的数据库配置

由于新浪SAE对文件权限的限制,cache目录无法修改权限,因此原版Codeigniter无法直接使用.可以尝试codeIgniter 2.10 for SAE:http://code.google.com/p/ci-sae/. 在database.php中配置如下: 复制代码 代码如下: $db['default']['hostname'] = SAE_MYSQL_HOST_M;$db['default']['username'] = SAE_MYSQL_USER;$db['default']

codeigniter数据库操作函数汇总

网上倒是有不少Codeigniter数据库操作的介绍,这里做一个汇总. 复制代码 代码如下: //查询: $query = $this->db_query("SELECT * FROM table"); ================================== //result() 返回对象数组$data = $query->result(); //result_array() 返回数据$data = $query->result_array(); //r

codeigniter自带数据库类使用方法说明

初始化数据库类 依据你的数据库配置载入并初始化数据库类: 复制代码 代码如下: this->load->database(); 被载入之后你可以在任何地方使用它. 以对象形式返回查询结果 复制代码 代码如下: $query = $this->db->query('SELECT name, title, email FROM my_table'); foreach ($query->result() as $row){    echo $row->title;    ec

CodeIgniter删除和设置Cookie的方法

本文实例讲述了CodeIgniter删除和设置Cookie的方法.分享给大家供大家参考.具体如下: $cookie = array( 'name' => 'loggedin', 'value' => 'yes', 'expire' => '86500', 'domain' => '.apol0829.dev', 'prefix' => 'apollidon_' ); set_cookie($cookie); $cookie = array( 'name' => 'log

php中CI操作多个数据库的代码

其实,这不是什么难事,因为刚入手CI,所以还是费了一番周折.好在有手册. 找到数据库配置文件,添加一个新的库的连接信息.$config[XX]. 在控制器里边, a) $this->xx = $this->load->database('XX', TRUE) tip:XX表示你配置的数据库信息数组的键名,后边建议设置为TRUE,分别表示返回连接ID和启用ActionRecord类 b) 然后在该控制器里边你就可以用 $this->xx->query()来查询你的另一个库的数据

CI配置多数据库访问的方法

本文实例讲述了CI配置多数据库访问的方法.分享给大家供大家参考,具体如下: 1.修改datebase.php文件,将: $db['XXX']['pconnect'] = TRUE; 修改成: $db['XXX']['pconnect'] = FALSE; 2.将原来的数据库链接定义复制一份,如当前 $db['bbs']['hostname'] = '你的数据库IP地址'; $db['bbs']['username'] = '链接用户名'; $db['bbs']['password'] = '数据

CI框架AR数据库操作常用函数总结

本文实例讲述了CI框架AR数据库操作常用函数.分享给大家供大家参考,具体如下: 1.查询表记录 $this->db->select(); //选择查询的字段 $this->db->select_max(); $this->db->select_min(); $this->db->select_avg(); $this->db->select_sum(); $this->db->from(); //选择表名 $this->db-&

CI框架入门示例之数据库取数据完整实现方法

本文实例讲述了CI框架入门示例之数据库取数据完整实现方法.是写给初学者看的,这是最简单可以调通的例子.分享给大家供大家参考.具体实现方法如下: 1.下载CI框架 2.配置 database.php配置: 为数据库服务器设置 connection 参数: 复制代码 代码如下: $db['default']['hostname'] = "your-db-host";  $db['default']['username'] = "your-username";  $db[

CodeIgniter框架基本增删改查操作示例

本文实例讲述了CodeIgniter框架基本增删改查操作.分享给大家供大家参考,具体如下: 对于codeigniter的增删改,在此我用自己的一个例子来说明一下: 创建数据库: CREATE TABLE IF NOT EXISTS `users` ( `id` int(10) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `password` varchar(50) NOT NULL, `email` varchar(100)

CI框架出现mysql数据库连接资源无法释放的解决方法

本文实例分析了CI框架出现mysql数据库连接资源无法释放的解决方法.分享给大家供大家参考,具体如下: 使用ci框架提供的类查询数据: $this->load->database(); $query = $this->db->query($sql); 程序运行一段时间之后,报错,告知数据库too many connections 很明显MySQL数据库连接资源超过了 max_connections 设定值.立马在每个查询之后,添加资源释放脚本: $this->db->c

CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结

本文实例总结了CI框架中数据库操作函数$this->db->where()相关用法.分享给大家供大家参考,具体如下: CI 框架数据库操作函数 this->db->where() 的使用 1) $this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE) 如果把$this->db->where() 接受可选的第三个参数设置为 FALSE, CodeIgniter 将不会为

CI框架数据库查询缓存优化的方法

本文实例讲述了CI框架数据库查询缓存优化的方法.分享给大家供大家参考,具体如下: CI框架中有个比较好的查询优化,就是数据库缓存优化 1.开启缓存 //在application/config.php中开启 $db['default']['cache_on'] = TRUE; //在application/config.php中开启 $db['default']['cachedir'] = './cache'; //并在对应的目录中加一个可写缓存目录cache 2. 在对应的查询中开启缓存语句 /

CI框架中redis缓存相关操作文件示例代码

本文实例讲述了CI框架中redis缓存相关操作文件.分享给大家供大家参考,具体如下: redis缓存类文件位置: 'ci\system\libraries\Cache\drivers\Cache_redis.php' <?php /** * CodeIgniter * * An open source application development framework for PHP 5.2.4 or newer * * NOTICE OF LICENSE * * Licensed under

CI框架整合widget(页面格局)的方法

本文实例讲述了CI框架整合widget(页面格局)的方法.分享给大家供大家参考,具体如下: 在WEB开发过程中,我们免不了要输出视图文件,而通常视图文件又一般都少不了头部.左侧栏以及底部这些公共元素. 如何让整个项目开发在涉及视图套用时引入敏捷的思维,提高效率呢?就不得不提一下widget.承然你也大可以使用HMVC模型. 这里仅介绍下widget如何结合入CI框架中: 1.在类文件MY_Controller.php中添加调用方法: /* * 如果$name存在则调用widget类及widget

FleaPHP框架数据库查询条件($conditions)写法总结

本文实例讲述了FleaPHP框架数据库查询条件($conditions)写法.分享给大家供大家参考,具体如下: 在FleaPHP中,凡是用到数据库查询的函数,都需要查询条件参数$conditions,现讲述用法如下: 举例: // $conditions 保存查询条件 $conditions = 'level_ix > 1'; // $tableOrders 是一个订单数据表的表数据入口对象 $order = $tableOrders->find($conditions, 'created D

用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化

实例的背景说明 假定一个个人信息系统,需要记录系统中各个人的故乡.居住地.以及到过的城市.数据库设计如下: Models.py 内容如下: from django.db import models class Province(models.Model): name = models.CharField(max_length=10) def __unicode__(self): return self.name class City(models.Model): name = models.Ch

清空mysql 查询缓存的可行方法

对一条sql进行优化时,发现原本很慢的一条sql(将近1分钟) 在第二次运行时, 瞬间就完成了(0.00sec) 这是因为mysql对同一条sql进行了缓存,服务器直接从上次的查询结果缓存中读取数据,而不是重新分析.执行sql. 可通过如下方法清空查询缓存 reset query cache;

Spring AOP实现Redis缓存数据库查询源码

应用场景 我们希望能够将数据库查询结果缓存到Redis中,这样在第二次做同样的查询时便可以直接从redis取结果,从而减少数据库读写次数. 需要解决的问题 操作缓存的代码写在哪?必须要做到与业务逻辑代码完全分离. 如何避免脏读? 从缓存中读出的数据必须与数据库中的数据一致. 如何为一个数据库查询结果生成一个唯一的标识?即通过该标识(Redis中为Key),能唯一确定一个查询结果,同一个查询结果,一定能映射到同一个key.只有这样才能保证缓存内容的正确性 如何序列化查询结果?查询结果可能是单个实体

MySQL优化之缓存优化(续)

MySQL 内部处处皆缓存,等什么时候看了MySQL的源码,再来详细的分析缓存的是如何利用的.这部分主要将各种显式的缓存优化: 查询缓存优化 结果集缓存 排序缓存 join 连接缓存 表缓存Cache 与表结构定义缓存Cache 表扫描缓存buffer MyISAM索引缓存buffer 日志缓存 预读机制 延迟表与临时表 1.查询缓存优化 查询缓存不仅将查询语句结构缓存起来,还将查询结果缓存起来.一段时间内,如果是同样的SQL,则直接从缓存中读取结果,提高查找数据的效率.但当缓存中的数据与硬盘中