`

mysql多表联合查询

 
阅读更多

我在工作中天天研究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多表联合查询

    MySql,多表联合查询加AS语句,多余的就不说了,自己看,绝对简单!

    mysql多表联合查询的教程

    MySQL 多表联合查询教程 在本教程中,我们将学习 MySQL 中的多表联合查询,包括多表插入和多表更新的操作。多表联合查询是指从多个表中检索数据的操作,这种操作在实际应用中非常常见。 什么是多表联合查询 多表...

    mysql多表联合查询.pdf

    在给定的文件中,我们可以看到有关MySQL多表联合查询的知识点。首先,文件包含了创建和操作MySQL数据库表的SQL语句,接着是使用INSERT语句向表中插入数据的示例,最后是一些使用PHP通过MySQL扩展连接数据库进行操作...

    mysql多表联合查询操作实例分析

    MySQL的多表联合查询是数据库操作中非常重要的一个概念,特别是在处理复杂的数据关系时,能够有效地从多个表中提取所需信息。本篇文章将深入探讨这一主题,通过实例分析来阐述其语法、功能以及操作技巧。 首先,让...

    mysql多表联合查询返回一张表的内容实现代码

    在MySQL数据库中,多表联合查询(也称为联接查询)是处理多个相关表数据的一种常见方式。当需要从多个表中获取数据并合并成一个单一的结果集时,联合查询就派上了用场。本篇文章将详细介绍如何在MySQL中进行多表联合...

    详解Mysql多表联合查询效率分析及优化

    MySQL中的多表联合查询是数据库操作中常见的需求,特别是在处理复杂的数据分析和报表时。本文将深入探讨多表联合查询的效率分析以及优化策略。 首先,我们要了解多表连接的几种基本类型: 1. **笛卡尔积(Cross ...

    mysql多表查询,联合查询

    mysql多表查询,联合查询

    MyBatis Plus 的多表联接、分页查询实现方法,源码加sql

    MyBatis Plus 的多表联接、分页查询实现方法 http://localhost/common/getAllQuestionByPage/1/10 多表关联、分页查询接口 http://localhost/common/getAllQuestionWithStudentByPage/1/10 多表关联、分页带参数查询...

    多表联合查询

    多表联合查询,一个简单的实例。适合初学者参考!

    mysql数据库的多表设计和各种查询(连接查询\子查询\联合查询\报表查询),以及数据库备份和恢复

    MySQL数据库在设计复杂的业务系统时...总结,MySQL的多表设计和查询方式是数据管理的核心技能,而备份和恢复策略是保障数据安全的关键环节。理解并熟练运用这些知识,能帮助我们在实际工作中更高效地管理和操作数据库。

    (009)《第五部分-练习题2:MySQL两表联合查询》

    1. MySQL 联合查询:在题目中,我们看到了两种查询方法,一种是基于子查询的方法,另一种是使用 JOIN 的方法。在 SQL 中,联接查询(JOIN)是用于从两个或更多个表中检索数据的主要方式。例如,方法一通过嵌套子查询...

    mysql 单表多表查询

    单表查询主要涉及从单一表格中检索信息,而多表查询则涉及到两个或更多表格的数据联合,以满足更复杂的数据需求。 1. **单表查询**: 单表查询是最基础的SQL操作,主要包括SELECT语句。你可以选择一个或多个列,过滤...

    25.3 MySQL 多表查询

    综上所述,理解和掌握 MySQL 的多表查询是提高数据库管理效率的关键。通过熟练运用各种连接类型、子查询和联合查询,你可以更有效地处理复杂的数据需求,从而在业务场景中发挥出 MySQL 的强大功能。

    (010)《第五部分-练习题3:MySQL三表联合查询》【包含公司面试题】

    以上是针对每个查询操作的详细解析,这些查询展示了如何在MySQL中进行多表联合查询,包括JOIN操作,WHERE子句,条件过滤,聚合函数(SUM, MAX),子查询等,这些都是数据库操作中的基础但重要的技能,对于测试工程师...

    解决Mysql数据库实现多表联合查询

    MySQL,作为一款广泛使用的SQL数据库系统,提供了多种方式进行多表联合查询,以便用户可以有效地从不同表中获取所需信息。本文将详细讨论如何在MySQL中实现多表联合查询,并解决按照特定字段排序展示数据的问题。 ...

    基于MySql多表分页查询优化技术.pdf

    在需要进行频繁的多表联合查询的应用中,优化分页查询性能显得尤为重要。MySql数据库性能的提升,对各类依赖数据库的应用系统具有深远的影响。 作者团队在文章中提出的方法,基于实验和实际应用数据,证实了其对于...

    MySQL创建日历表

    存储过程创建日历表,用来与数据库中其他表做联合查询时补全没有数据的表

Global site tag (gtag.js) - Google Analytics