文档章节

MYSQL关联查询(PHP)

taxilmc
 taxilmc
发布于 2016/07/04 22:03
字数 259
阅读 25
收藏 0

今天在写了一个数据库查询的函数,不过被老大轻喷了。的确之前的查询方式不好,在此整理贴下。

有时候我们需要对两张表或多张表进行关联查询。如下图:

方法一:对人员表中的每一项,都去查询部门表。我之前使用的方法...每次都要查询,浪费时间,不推荐。

方法一对应代码(PHP-THINKPHP):

$User = D('User');
$list = $User->where(true)->select();
$Depart= D('Department');
        $num = 0;
        foreach($list as $one){
            $id = $one['depart_id'];
            $result = $Depart->where("depart_id = $id")->find();
            $list[$num]['depart_name'] = $result['depart_name'];
            num++;
        }
dump($list);

 

方法二:把人员表中每一项的部门ID组成数组,统一用 IN 查询。之后使用的方法..只用查询一次数据库。

方法二对应代码(PHP-THINKPHP):

$User = D('User');
$list = $User->where(true)->select();
$Depart= D('Department');
        $idlist = array();
        foreach($list as $one){
            $id = $one['depart_id'];
            $idlist[] = $id;
        }
        $map['depart_id'] = array('in',$idlist);
        $result = $Depart->where($map)->Field("depart_name")->select();
        foreach($list as $k=>$v){
            $list[$k]['depart_name'] = $result[$k];
        }

 

© 著作权归作者所有

共有 人打赏支持
taxilmc
粉丝 2
博文 14
码字总数 10216
作品 0
韶关
程序员
PHP面试之复杂MySQL语句的编写

真题 有A(id,sex, par, cl, c2)、B(id,age,c1,c2)两张表,其中A.id与B.id关联,现在要求写出一条SQL语句,将B中age>50的记录的c1,c2更新到A表中统一记录中的c1,c2字段中。 MySQL的关联update操...

openoter
04/20
0
0
高性能MySQL-3rd-(六)查询性能优化

/ -------------------------------------------------------- * 高性能MySQL-3rd-Baron Schwartz-笔记 * 第六章 查询性能优化 */ -------------------------------------------------------......

zhmsong
2014/01/20
0
0
PHP+MySQL缓冲查询和无缓冲查询

http://php.net/manual/zh/mysqlinfo.concepts.buffering.php http://php.net/manual/zh/mysqli.query.php PHP MySQL查询(mysqli,pdo_mysql)默认使用缓冲模式. 也就是说查询结果将一次性从M......

eechen
2015/12/30
1K
1
《PHP和MySQL Web 开发》 第十一章 使用PHP从库Web访问MySQL数据

1.search.html HTML没啥说的了,前端都会,我在里面引入了bootstrap.css 为了美观一点。 注意:select 和 input 的 name 要写对,PHP中要用。 2.results.php 3.从Web查询数据库的基本步骤 任...

十万猛虎下画山
07/10
0
0
PHP面试之MySQL查询优化

[TOC] 请简述项目中优化MySQL语句执行效率的方法,从哪些方面入手,SQL语句性能如何分析? 分析查询速度 记录慢查询日志 分析查询日志,使用工具进行分析 使用 set peofiling=1; # 服务器上执...

openoter
04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

sqlserver 2008 r2 直接下载地址(百度云)

之前下载的sqlserver2008发现不能附加,就卸载了,重新找到了sqlserver2008R2的百度云资源 卸载sqlserver2008还是有点麻烦,不过就是需要删除注册表中的信息 自己来回卸载了3次终于重装sqlse...

dillonxiao
31分钟前
1
0
[Java]JVM调优总结 -Xms -Xmx -Xmn -Xss

JVM调优总结 -Xms -Xmx -Xmn -Xss 博客分类: Java General JVM应用服务器电信CMS算法 堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可...

morpheusWB
42分钟前
1
0
C++ std::function 和 std::bind

C++11提供了std::function和std::bind两个工具,用于引用可调用对象。这些可调用对象包括 普通函数,Lambda表达式,类的静态成员函数,非静态成员函数以及仿函数等。引用可调用对象,可以用于...

yepanl
今天
2
0
python:可迭代对象的索引

关于 python的range的用法: 注意是[ 开始,结束)的半开区间,不包括结束 http://www.runoob.com/python/python-func-range.html import collectionsfrom collections import Iterable字符串......

Oh_really
今天
3
0
docker-compose ,docker-stack

1.例子 version: "3"services: php: image: registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5 ports: - "38080:80" networks: - my_php_mysql volum......

chenbaojun
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部