文档章节

MYSQL关联查询(PHP)

taxilmc
 taxilmc
发布于 2016/07/04 22:03
字数 259
阅读 27
收藏 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
韶关
程序员
私信 提问
高性能MySQL-3rd-(六)查询性能优化

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

zhmsong
2014/01/20
0
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
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
LAMP原理架构解析(二):Php操作Mysql数据库

Php操作Mysql数据库 目录 1.PHP脚本操作数据库6步骤 2.PHP连接mysql 3.PHP对数据库增删改查 4.PHP常用其他函数 5.php连接mysql(i) 5.1 建立和断开连接 5.2 处理连接错误 5.3 与数据库交互 一...

心的哲学
2017/10/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

探索802.11ax

802.11ax承诺在真实条件下改善峰值性能和最差情况。 如何改善今天的Wi-Fi? 在决定如何改进当前版本以外的Wi-Fi时,802.11ac,IEEE和Wi-Fi联盟调查了Wi-Fi部署和行为,以确定更广泛使用的障碍...

linuxprobe16
今天
2
0
使用linux将64G的SDCARD格式化为FAT32

一、命令如下: sudo fdisk -lsudo mkfs.vfat /dev/sda -Isudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to wri......

mbzhong
今天
4
0
深入理解Plasma(四):Plasma Cash

这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章主要介绍在 Plasma 框架下的项目 Plasma Cash。 深入理解Plasma(1):...

HiBlock
昨天
1
0
命令参数的三大风格:Posix、BSD、GNU

今天读到命令行中参数的风格有三大类,即Unix/Posix、BSD、GNU。分别有以下特征: Unix/Posix风格,即命令后的参数,可以分组,便必须以连字符开头,如ps -aux。 BSD风格,即命令后的参数,可...

大别阿郎
昨天
2
0
PHP生成图片验证码

PHP生成图片验证码 /** * PHP生成图片验证码 * Class VerifyImage */class VerifyImage{ // 生成随机字串 private $verifyCode; // 图片对象 private $image; /**...

DrChenXX
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部