- 浏览: 208514 次
- 性别:
- 来自: 重庆
-
文章分类
最新评论
我在工作中天天研究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 1435FOUND_ROWS() 函数 ,可以在调用包含LIMIT的 ... -
使用mysql的last_insert_id() 产生自增的id
2012-12-17 15:48 1128刚才查了下last_insert_id()相关资料,找到几篇不 ... -
innodb的记录锁、gap锁、next-key锁
2012-12-17 13:45 1431相关文章见: http://dev.mysql ... -
MySQL Innodb表死锁情况分析与归纳(转载)
2012-12-14 16:22 1997案例描述 在定时脚本运行过程中,发现当 ... -
MySQL连接超时
2012-12-13 20:41 1154在负载较重的MySQL服务器上,有时你偶尔会看到一些 ... -
mysql优化索引 —— Using filesort
2012-12-11 12:13 862用Explain分析SQL语句的时候,经常发现有的语句在 ... -
IN条件结果顺序问题
2012-11-23 14:42 714项目中需要记录用户的浏览历史,我的意见是前端直接存cook ... -
mysql那点事(行锁+not null + varchar)
2012-10-12 15:08 1716一。not null vs DEAFUL value ... -
关于mysql auto_increment所带来的锁表操作
2012-09-01 14:00 1641以前内容主要是对官方文档中的意译,并加入了一些自己的理解 ... -
mysql 与unicode
2012-08-29 15:36 1739UTF8字符集(转换Unicode表示)是存储Unico ... -
深入Mysql字符集设置
2012-08-29 14:46 59105 Jan 08 深入Mysql字符集设置 ... -
关于set names
2012-08-29 14:37 839<?php$conn=mysql_connect( ... -
MYSQL索引优化和in or替换为union all
2012-08-22 17:16 4085一个文章库,里面有两个表:category和article。c ... -
mysql读写分离(PHP类)
2012-08-18 18:08 3763自己实现了php的读写 ... -
mysql分表的3种方法
2012-08-02 14:39 867当一张的数据达到几百万时,你查询一次所花的时间会变多,如 ... -
MySql BLOB类型
2012-08-02 13:42 762MySql的Bolb四种类型 MySQL中,BLOB是一个二进 ... -
MySQL 查询优化技巧
2012-07-18 20:26 791瓶颈 众所周知,几乎所有大型项目的最终效率瓶颈,都来自 ...
相关推荐
MySql,多表联合查询加AS语句,多余的就不说了,自己看,绝对简单!
MySQL 多表联合查询教程 在本教程中,我们将学习 MySQL 中的多表联合查询,包括多表插入和多表更新的操作。多表联合查询是指从多个表中检索数据的操作,这种操作在实际应用中非常常见。 什么是多表联合查询 多表...
在给定的文件中,我们可以看到有关MySQL多表联合查询的知识点。首先,文件包含了创建和操作MySQL数据库表的SQL语句,接着是使用INSERT语句向表中插入数据的示例,最后是一些使用PHP通过MySQL扩展连接数据库进行操作...
MySQL的多表联合查询是数据库操作中非常重要的一个概念,特别是在处理复杂的数据关系时,能够有效地从多个表中提取所需信息。本篇文章将深入探讨这一主题,通过实例分析来阐述其语法、功能以及操作技巧。 首先,让...
在MySQL数据库中,多表联合查询(也称为联接查询)是处理多个相关表数据的一种常见方式。当需要从多个表中获取数据并合并成一个单一的结果集时,联合查询就派上了用场。本篇文章将详细介绍如何在MySQL中进行多表联合...
MySQL中的多表联合查询是数据库操作中常见的需求,特别是在处理复杂的数据分析和报表时。本文将深入探讨多表联合查询的效率分析以及优化策略。 首先,我们要了解多表连接的几种基本类型: 1. **笛卡尔积(Cross ...
mysql多表查询,联合查询
MyBatis Plus 的多表联接、分页查询实现方法 http://localhost/common/getAllQuestionByPage/1/10 多表关联、分页查询接口 http://localhost/common/getAllQuestionWithStudentByPage/1/10 多表关联、分页带参数查询...
多表联合查询,一个简单的实例。适合初学者参考!
MySQL数据库在设计复杂的业务系统时...总结,MySQL的多表设计和查询方式是数据管理的核心技能,而备份和恢复策略是保障数据安全的关键环节。理解并熟练运用这些知识,能帮助我们在实际工作中更高效地管理和操作数据库。
1. MySQL 联合查询:在题目中,我们看到了两种查询方法,一种是基于子查询的方法,另一种是使用 JOIN 的方法。在 SQL 中,联接查询(JOIN)是用于从两个或更多个表中检索数据的主要方式。例如,方法一通过嵌套子查询...
单表查询主要涉及从单一表格中检索信息,而多表查询则涉及到两个或更多表格的数据联合,以满足更复杂的数据需求。 1. **单表查询**: 单表查询是最基础的SQL操作,主要包括SELECT语句。你可以选择一个或多个列,过滤...
综上所述,理解和掌握 MySQL 的多表查询是提高数据库管理效率的关键。通过熟练运用各种连接类型、子查询和联合查询,你可以更有效地处理复杂的数据需求,从而在业务场景中发挥出 MySQL 的强大功能。
以上是针对每个查询操作的详细解析,这些查询展示了如何在MySQL中进行多表联合查询,包括JOIN操作,WHERE子句,条件过滤,聚合函数(SUM, MAX),子查询等,这些都是数据库操作中的基础但重要的技能,对于测试工程师...
MySQL,作为一款广泛使用的SQL数据库系统,提供了多种方式进行多表联合查询,以便用户可以有效地从不同表中获取所需信息。本文将详细讨论如何在MySQL中实现多表联合查询,并解决按照特定字段排序展示数据的问题。 ...
在需要进行频繁的多表联合查询的应用中,优化分页查询性能显得尤为重要。MySql数据库性能的提升,对各类依赖数据库的应用系统具有深远的影响。 作者团队在文章中提出的方法,基于实验和实际应用数据,证实了其对于...
存储过程创建日历表,用来与数据库中其他表做联合查询时补全没有数据的表