thinkphpthinkphp5 多表联查查问题请教

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)thinkPHP中如何实现 多表联查问题 新手【thinkphp吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:17,903贴子:
thinkPHP中如何实现 多表联查问题 新手收藏
我有一个商品表 还有一个商品图片表 两表的关联就是gid 现在我如何实现两表联查 将所有的数据打印到一个HTML的表单上面
在线等。。。。
php:初级/中级/高级,通过php,从新手入门,到大型项目实战,打造全能型人才.600名讲师团队,php4个月,带你月薪20000+.
thinkphp手册里 搜一下 关联模型
建议不要这么做
登录百度帐号推荐应用ThinkPHP5联合(关联)查询、多条件查询与聚合查询实例详解-阿里云资讯网
ThinkPHP5联合(关联)查询、多条件查询与聚合查询实例详解
发布时间:
更新时间:
来源:网络
上传者:用户
本文实例讲述了ThinkPHP5联合(关联)查询、多条件查询与聚合查询。分享给大家供大家参考,具体如下:
一、联合(关联)查询
1. 项目表 DROP TABLE IF EXISTS `darling_project`; CREATE TABLE `darling_project` ( `project_id` int(32) NOT NULL AUTO_INCREMENT, `project_name` varchar(20) NOT NULL, `create_time` int(32) NOT NULL, PRIMARY KEY (`project_id`), UNIQUE KEY `project_id` (`project_id`), UNIQUE KEY `project_name` (`project_name`) );
2. 版本号表 DROP TABLE IF EXISTS `darling_version`; CREATE TABLE `darling_version` ( `version_id` int(32) NOT NULL AUTO_INCREMENT, `project_id` int(32) NOT NULL, `version_name` varchar(128) NOT NULL, `create_time` int(32) NOT NULL, PRIMARY KEY (version_id), UNIQUE KEY `version_id` (`version_id`) );
3. 联合查询 $where=array( &version_id&=&$_POST['version_id'] ); $Project_version = model('Project')-&join(&darling_version&,&darling_version.project_id = darling_project.project_id&)-&where($where)-&find();
二、多条件查询
把查询条件放到数组里作为where函数参数,但是如果有大于小于这样的条件参数,数组里是无法赋值的。
例1: $where=array( &version_name&=&$version_name, &project_name&=&$project_name ); $userdata=$this-&where($where)-&find();
例2: $where=array( &version_name&=&$version_name, &project_name&=&$project_name ); $userdata=$this-&where($where)-&select();
例3: $where=array( &version_id&=&$version_id ); $version_name = model(&Version&)-&where($where)-&field(&version_name&)-&find();
把多个SQL查询语句作为where 参数,这样就支持大于小于这样的条件了。 $package = model('admin/Package') -&where(&project_id=&.$Project_version['project_id'].& and version_id=&.$Project_version['version_id'].& and status&1&) -&order('create_time desc') -&find();
把SQL查询语句放到多个where函数里 $package = model('admin/Package') -&where(&project_id=&.$Project_version['project_id']) -&where(&version_id=&.$Project_version['version_id']) -&where(&status&1&) -&order('create_time desc') -&find();
三、聚合max 函数
1.& 如下可以返还最新插入的升级包,但是只会返还create_time 这个字段,不能返回整条记录的字段。 $package = model('admin/Package') -&where(&project_id=&.$Project_version['project_id']) -&where(&version_id=&.$Project_version['version_id']) -&where(&status&1&)-&max(create_time)
2. 所以可以使用下面这个达到找出最新插入的记录并返还整条记录字段,先做order 排序,再find第一个记录。 $package = model('admin/Package') -&where(&project_id=&.$Project_version['project_id']) -&where(&version_id=&.$Project_version['version_id']) -&where(&status&1&) -&order('create_time desc') -&find();
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:zixun-group@service.aliyun.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
历史消息页
采集微信文章和采集网站内容一样,都需要从一个列表页开始。而微信文章的列表页就是公众号里的查看历史消息页。现在网络上的其它微信采集器有的是利用搜狗搜索,采集方式虽然简单多了,但是内容不全。所以我们还是要从最标准最全面的公众号历史消息页来采集。 因为微信的限制,我们能复制到的链接是不完整的,在浏览器中无法打开看到内容。所以我们需要通过上一篇文章介绍的方法,使用anyproxy获取到一个完整的微...
通过搜狗搜索采集公众号历史消息有几个问题: 1、有验证码; 2、历史消息列表只有最近10条群发内容; 3、文章地址是有有效期的; 4、据说批量采集还要换ip; 通过我前面文章的方法就没有这些问题,虽然采集系统搭建不如传统采集器写个规则去爬就可以了那么简单。但是一次搭建好之后批量采集的效率还是可以的。而且采集的文章地址是永久有效的,并且可以采集到一个公众号所有的历史消息。 我们还是从一个公众号...
影响因素主要会有以下几点: 1、网络环境不佳; 2、手机或模拟器中微信客户端崩溃; 3、其它一些网络传输错误; 因为我比较看重采集系统的运行成本,这个成本包括硬件投入,运算力投入和占用的人工精力。所以必须提高运行的稳定性。因此如果采集中断,必然增加人工精力的成本。所以针对这一点我对anyproxy做了一些进阶的改造,并且借助了其它一些工具提高了运行效率。以下就是具体的解决方法: 一、代码升...
最近在学习workerman的时候比较频繁的接触到回调函数,使用中经常会因为worker的使用方式不同,会用这两种不同的方式去调用外部的worker变量,这里就整理一下PHP闭包获取外部变量和global关键字声明变量的区别。 闭包 闭包是一个常见的概念,我们通常可以将其与回调函数配合使用,可以使代码更加简洁易读。 闭包可以 通过拷贝的方式 让函数使用父作用域中的变量。如: $global ...
laravel5.4数据填充
数据迁移作用
前言 这是一篇基础教程,对标 Laravel 文档中的数据迁移和数据填充,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍把。 关于Laravel数据库迁移的理解 最初看到laravel框架中迁移的时候,会以为这个迁移是把数据从一个数据库中迁到另一个数据库中,又或者是从一个服务器迁移到另一个服务器中。我自己学习有一个学习方法叫做顾名思义,所以所述是我的第一反应,但是学了以后发现这...
最近,发现个人博客的Linux服务器,数据库服务经常挂掉,导致需要重启,才能正常访问,极其恶心,于是决心开始解决问题,解放我的时间和精力(我可不想经常出问题,然后人工重启,费力费时)。 分析问题 发现问题以后,首先使用 free -m 指令查看当前服务器执行状况: 可以看到我的服务器内存是2G的,但是目前可用内存只剩下70M,内存使用率高达92%,很有可能是内存使用率过高导致数据库服务挂断...
若您要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在5个工作日内回复。
售前咨询热线
服务与支持
账号与支持
关注阿里云
International(C) 2013 - 2017 青春博客 & 版权所有
&|&鄂ICP备号-1请完成以下验证码
查看: 1423|回复: 0
求解THinkPhp下的mysql多表联立查询
沧海ふ无涯
本帖最后由 沧海ふ无涯 于
16:52 编辑
现在有两张表
Type表&&和Content表
Type表是类型表
Content是内容表.
CREATE TABLE IF NOT EXISTS `ai9me_contributecontent` (
&&`ID` int(11) NOT NULL AUTO_INCREMENT,
&&`Title` varchar(20) NOT NULL,
&&`Type` int(2) NOT NULL,
&&`Content` varchar(1000) NOT NULL,
&&`Author` varchar(10) NOT NULL,
&&`Phone` varchar(11) NOT NULL,
&&`Time` date NOT NULL,
&&`Ip` varchar(19) NOT NULL,
&&PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
-- 表的结构 `ai9me_contributetype`
CREATE TABLE IF NOT EXISTS `ai9me_contributetype` (
&&`ID` int(2) NOT NULL AUTO_INCREMENT,
&&`type` varchar(20) NOT NULL,
&&PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
现在要做一个查询&&ai9me_contributecontent表中的Type字段就是Type表的ID主键& &
现在要把这个主键替换成Type表的type字段.就是把Type改成具体的类型,而不是一个ID数字
这个是我写的
$model =new model();
$title=$model-&table(&ai9me_contributecontent cc,ai9me_contributetype ct&)-&where(&cc.Type=ct.type&) -&
field(&cc.ID,cc.Title,ct.type,cc.Content,cc.Author,cc.Phone,cc.Time,cc.Ip&)-&select();
实际的SQL语句
SELECT cc.ID,cc.Title,ct.type,cc.Content,cc.Author,cc.Phone,cc.Time,cc.Ip FROM ai9me_contributecontent cc,ai9me_contributetype ct WHERE ( cc.Type=ct.type )
查询的结果是空的
cc.Type=ct.type -& cc.Type=ct.Id
Copyright & KaFan &KaFan.cn All Rights Reserved.
Powered by Discuz! X3.4( 苏ICP备号 ) GMT+8,

我要回帖

更多关于 thinkphp5 多表联查 的文章

 

随机推荐