- 浏览: 203102 次
- 性别:
- 来自: 重庆
文章分类
最新评论
我在工作中天天研究zen cart的程序,那个叫人痛苦,最近比较痛苦的是经常碰见mysql多表联合查询,多的时候有12个表联合查询,zen cart的程序员不知道是懒还是技术好,一个语句完成啦20几个功能模块需要的数据,我修改就痛苦的很~~~!!!我只会select * from table where id=1,2,3,。。。。。。。。。。
后台来在网上找啦一堆,看懂啦个大概,很多没有注意教PHP操作输出的数组集首先我们要了解三个用于联合查询的语法:
left join (左链) right join(右链) inner jion(内联);
我们开始讲解列子的时候,先要三个表:
表t1是会员的名字,级别ID
id name lvid(级别ID)
1 张 2
2 王 3
3 李 1
4 小 5
表t2是会员的级别ID的值(比如1是幼儿园 2是小学生 3是中学生)
lv_id lv(会员级别值)
1 幼儿园
2 小学生
3 中学生
4 高中生
表t3是会员发帖的表,有帖子ID,帖子标题,会员ID,帖子属性(禁止阅读 和 允许阅读)
art_id art_name(帖子标题) h_id (会员ID) art_pr(帖子属性)
1 你 1 0
2 我 3 1
3 他 1 0
4 大家 3 1
三个表都建好啦,我们先看表t1 和 t2 来讲解left join 和 right jion
left join 左连查询 语法是
<?php $query="SELECT t1.id, t1.name, t2.lv FROM t1 LEFT JOIN t2 ON t1.lvid=t2.lv_id" ; while($row=mysql_fetch_array($query)){ print_r($row); ?>
查询结果如下:
id name lv
1 张 小学生
2 王 中学生
3 李 幼儿园
4 小 null
可以看出左连查询就是按照左边t1的条件查询,保留t1所有数据,右边表t1没有符合左边表t2的数据为空
RIGHT JOIN刚好相反
<?php $query ="SELECT t1.id, t1.name, t2.lv FROM t1 RIGHT JOIN t2 ON t1.lvid=t2.lv_id" while($row=mysql_fetch_array($query)){ print_r($row); ?>
查询结果如下:
id name lv
3 李 幼儿园
1 张 小学生
2 王 中学生
NULL NULL 高中生
可以看出左连查询就是按照左边t1的条件查询,保留t2所有数据,t1没有符合的数据为空
发表评论
-
分页,MySQL的SQL_CALC_FOUND_ROWS
2012-12-17 16:44 1346FOUND_ROWS() 函数 ,可以在调用包含LIMIT的 ... -
使用mysql的last_insert_id() 产生自增的id
2012-12-17 15:48 1086刚才查了下last_insert_id()相关资料,找到几篇不 ... -
innodb的记录锁、gap锁、next-key锁
2012-12-17 13:45 1390相关文章见: http://dev.mysql ... -
MySQL Innodb表死锁情况分析与归纳(转载)
2012-12-14 16:22 1940案例描述 在定时脚本运行过程中,发现当 ... -
MySQL连接超时
2012-12-13 20:41 1114在负载较重的MySQL服务器上,有时你偶尔会看到一些 ... -
mysql优化索引 —— Using filesort
2012-12-11 12:13 820用Explain分析SQL语句的时候,经常发现有的语句在 ... -
IN条件结果顺序问题
2012-11-23 14:42 665项目中需要记录用户的浏览历史,我的意见是前端直接存cook ... -
mysql那点事(行锁+not null + varchar)
2012-10-12 15:08 1653一。not null vs DEAFUL value ... -
关于mysql auto_increment所带来的锁表操作
2012-09-01 14:00 1607以前内容主要是对官方文档中的意译,并加入了一些自己的理解 ... -
mysql 与unicode
2012-08-29 15:36 1683UTF8字符集(转换Unicode表示)是存储Unico ... -
深入Mysql字符集设置
2012-08-29 14:46 56205 Jan 08 深入Mysql字符集设置 ... -
关于set names
2012-08-29 14:37 809<?php$conn=mysql_connect( ... -
MYSQL索引优化和in or替换为union all
2012-08-22 17:16 4044一个文章库,里面有两个表:category和article。c ... -
mysql读写分离(PHP类)
2012-08-18 18:08 3609自己实现了php的读写 ... -
mysql分表的3种方法
2012-08-02 14:39 831当一张的数据达到几百万时,你查询一次所花的时间会变多,如 ... -
MySql BLOB类型
2012-08-02 13:42 711MySql的Bolb四种类型 MySQL中,BLOB是一个二进 ... -
MySQL 查询优化技巧
2012-07-18 20:26 756瓶颈 众所周知,几乎所有大型项目的最终效率瓶颈,都来自 ...
相关推荐
主要介绍了mysql多表联合查询操作,结合实例形式分析了mysql多表联合查询的语法、功能、相关操作技巧与注意事项,需要的朋友可以参考下
MySql,多表联合查询加AS语句,多余的就不说了,自己看,绝对简单!
在使用mysql多表联合查询时怎样可以做到只返回返回一张表的内容,本文将详细介绍,需要了解的朋友可以参考下
主要介绍了Mysql多表联合查询效率分析及优化,需要的朋友可以参考下
mysql多表联合查询.pdf
这是一个多表联合查询的小教程。希望能给大家带来帮助。希望大家多多学习!
需要搭配博主【MySQL】联合查询这篇文章使用,用于初始化数据,搭配文章学习可以充分学会联合查询,建议先学习博主 MySQL 专栏前部分的基础知识,联合查询是在有一定基础后进行学习的,里面的案例非常多,...