ThinkPHP 经常会遇到多表查询,最近的一个项目就是要同时查询四个表,当然 sql 也要使用多表查询了,只是在 where 的时候有些困难,研究了大半天的时间,终于给搞出来了,好了,先看看 ThinkPHP 中关于 JOIN 多表查询的使用吧,其它查询部分一切照旧。

JOIN方法是连贯操作中唯一可以多次调用的方法

分别查询表artist、work、card 、card

JOIN 有两种方式:LEFT JOIN(默认使用)与RIGHT JOIN

//Left Join

$Model->join(‘work ON artist.id = work.artist_id’)->join(‘card ON artist.card_id = card.id’)->select();

$Model->table(‘user U’)->join(‘news N on U.id=N.cid’)->field(‘U.*,N.*’)->order(‘id desc’)->limit(‘8’)->select();

//Left Join

$Model->table(‘user U’)->join(‘news N on U.id=N.cid’)->field(‘U.*,N.*’)->order(‘id desc’)->limit(‘8’)->select();

//Right Join

$Model->join(‘RIGHT JOIN work ON artist.id = work.artist_id’)->select();

//xiariboke.com

$Model->table(‘user U’)->join(array(‘right’,’news N on U.id=N.cid’))->field(‘U.*,N.*’)->order(‘id desc’)->limit(‘8’)->select();

在写好 JOIN 之后,在使用 where 的时候,要指定表名,例如 where 条件:

//Left Join

$Model->join(‘work ON artist.id = work.artist_id’)->join(‘card ON artist.card_id = card.id’)->wehre(“artist.card_id =10”)->select();

再来分享我写的一个 ThinkPHP 查询方法,可以当作正常的列表来使用,也可以直接 post 当作搜索来使用,代码如下:

public function index(){

$model = M(‘sequence_code’);

import(“@.ORG.Page”);

$count  = $model->count();

$Page   = new Page($count);

if ($_POST[phone]){

$where[‘xn_sequence_code.phone’] = array(‘like’,“%”.$_POST[‘phone’].“%”);

}

$this->list = $model->where($where)->field(‘xn_sequence_code.id,xn_sequence_code.scode,xn_sequence_code.phone,xn_sequence_code.is_use,xn_sequence_code.use_date,xn_demand.title,xn_insurance_deepconfig.gradename,xn_member.nickname’)->join(‘left join xn_demand on xn_demand.id=xn_sequence_code.type_id left join xn_insurance_deepconfig on xn_insurance_deepconfig.id=xn_sequence_code.grade_id left join xn_member on xn_member.mobile=xn_sequence_code.phone’)->limit($Page->firstRow. ‘,’ . $Page->listRows)->order(‘xn_sequence_code.id desc’)->select(); //xiariboke.com

$this->page=$Page->show();

$this->display();

}

重点在于 sql 语句的拼接和 where 条件语句,之前我使用的一直是不带表名的 where 语句,导致查询不成功,如果是只有两个表的查询,where 语句不带表前缀是可以的,如果是多表的话就不行,这里有个细微的区别,害得我搞了半天。

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。导航:艺宵博客 » ThinkPHP关于JOIN使用方法详细说明

php jion用法,ThinkPHP关于JOIN使用方法详细说明相关推荐

  1. java string join 用法_Java String join() 使用方法及示例

    Java String join() 使用方法及示例 Java String join()方法返回一个新字符串,该字符串具有给定的元素和指定的分隔符. 字符串join()方法的语法为: String. ...

  2. php中的where用法,ThinkPHP中where()使用方法详解

    本文介绍thinkphp的where()方法的用法.where方法可以用于对数据库操作的结果进行筛选.即sql查询语句中的where子句. 今天来给大家讲下查询最常用但也是最复杂的where方法,wh ...

  3. 用php进行联查,Thinkphp使用join联表查询的方法

    本篇文章介绍了Thinkphp使用join联表查询的方法,具有一定的参考价值,希望对各位学习thinkphp的朋友有帮助! Thinkphp使用join联表查询的方法 多表联查:$user = M(' ...

  4. php tp5的联表查询,Thinkphp使用join联表查询的方法

    本篇文章介绍了Thinkphp使用join联表查询的方法,具有一定的参考价值,希望对各位学习thinkphp的朋友有帮助! Thinkphp使用join联表查询的方法 多表联查:$user = M(' ...

  5. 在thinkphp框架中如何对多表进行操作(thinkphp多表查询方法)

    在thinkphp框架中如何对多表进行操作(thinkphp多表查询方法) 本文讲解了在thinkphp框架中如何对多表进行操作,ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷 ...

  6. thinkphp模版调用函数方法

    原文:thinkphp模版调用函数方法 {变量|函数1|函数2|函数3=参数1,参数2,参数3,###} ###为第4个参数,代表变量替换为第4个参数 举例: {$username|substr=0, ...

  7. mysql不用left join_MySQL在右表数据不唯一的情况下使用left join的方法_MySQL - join

    一.Join语法概述join 用于多表中字段之间的联系,语法如下:... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditionatable1:左表 ...

  8. php 如何封装类库,ThinkPHP里的import方法用于类库导入的封装实现实例详解

    ThinkPHP里的import方法用于类库导入的封装实现实例详解 分类:PHP_Python| 发布:佚名| 查看: | 发表时间:2014/7/1 import方法是ThinkPHP框架用于类库导 ...

  9. 数据库join使用方法

    这里写目录标题 数据库join使用方法 inner join的用法 left join 的用法 Right join 的用法 数据库join使用方法 inner join(等值连接):只返回两个表中联 ...

  10. java7 javascript引擎_Java7中脚本引擎的一般用法,共三种方法获得JavaScript引擎:名称、文件扩展名、MIME类型 | 学步园...

    package com.sino.java7; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; i ...

最新文章

  1. https、SSL与数字证书介绍
  2. options模块介绍
  3. Vue学习(slot、axios)-学习笔记
  4. 【Python CheckiO 题解】Correct Sentence
  5. 漫步最优化十——极值类型
  6. redis常用命令getex_Redis常用命令
  7. linux取消头文件链接,【原创】Linux下编译链接中常见问题总结
  8. 华为机试HJ12:字符串反转
  9. iOS-推送通知详解
  10. 1022: [SHOI2008]小约翰的游戏John - BZOJ
  11. 音视频即时通讯开发功能介绍
  12. c语言投票程序设计,《C语言及程序设计》实践参考——投票表决器
  13. 简述神经元网络控制的作用和特点
  14. 我迟早被这些AI绘画笑死...
  15. 封装的APP封装源码-可以封装安卓和IOS
  16. 全球化经营必备,盘点主流跨境电商平台
  17. 在本地存储中存入和取出对象
  18. vim的安装以及基础使用
  19. 青春野狼不做姐控偶像的梦 - 线段树 - 扫描线 - 单调栈
  20. android头像相册/拍照选取,裁剪及上传综合案例

热门文章

  1. wp兼容了android应用程序,WP兼容了Android应用 微软的春天就来了?
  2. 网络基础之网络协议篇(转自林海峰老师)
  3. 解决【C++】其他类中友元函数不可访问私有数据--顺序问题
  4. plt.plot()有无分号结果不同
  5. 温习前端(HTML)
  6. 友盟分享——微信、腾讯微博、新浪微博分享失败原因分析
  7. 第一讲——什么是计算机网络?
  8. Unity摄像机平滑处理跟随
  9. 十大免费cms建站系统介绍推荐
  10. JQ ajax 请求事件处理