`
zjx2388
  • 浏览: 1304697 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

mysql left join 多个表

阅读更多

SQL:

select * from t_a a left join t_b b on a.bid = b.bid left join t_c c on a.cid = c.cid

 

t_a表

t_b表 

 t_c表

总的结果:



 

==============================================================

t_a表



 

t_b表



 

t_c表



 

总的结果表:



 

第二次带数据的sql:

 

# MySQL-Front 3.2  (Build 14.3)

/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='SYSTEM' */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */;
/*!40101 SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES */;
/*!40103 SET SQL_NOTES='ON' */;


# Host: 127.0.0.1    Database: jointest
# ------------------------------------------------------
# Server version 5.0.22-community-nt

DROP DATABASE IF EXISTS `jointest`;
CREATE DATABASE `jointest` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `jointest`;

#
# Table structure for table t_a
#

CREATE TABLE `t_a` (
  `aid` int(11) NOT NULL auto_increment,
  `aname` varchar(11) default NULL,
  `bid` int(11) default NULL COMMENT '引用自t_b的bid',
  `cid` int(11) default NULL COMMENT '引用自t_c的cid',
  PRIMARY KEY  (`aid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

#
# Dumping data for table t_a
#

INSERT INTO `t_a` VALUES (1,'a名字1',1,1);
INSERT INTO `t_a` VALUES (2,'a名字2',NULL,2);

#
# Table structure for table t_b
#

CREATE TABLE `t_b` (
  `bid` int(11) NOT NULL auto_increment,
  `bname` varchar(11) default NULL,
  PRIMARY KEY  (`bid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

#
# Dumping data for table t_b
#

INSERT INTO `t_b` VALUES (1,'b名字');

#
# Table structure for table t_c
#

CREATE TABLE `t_c` (
  `cid` int(11) NOT NULL auto_increment,
  `cname` varchar(11) default NULL,
  PRIMARY KEY  (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

#
# Dumping data for table t_c
#

INSERT INTO `t_c` VALUES (1,'c名字');
INSERT INTO `t_c` VALUES (2,'c名字2');

/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

 


 

  • 大小: 3.4 KB
  • 大小: 3.3 KB
  • 大小: 3.9 KB
  • 大小: 6.2 KB
  • 大小: 3.8 KB
  • 大小: 4.2 KB
  • 大小: 3 KB
  • 大小: 6.2 KB
分享到:
评论

相关推荐

    mysql多个left join连接查询用法分析

    mysql查询时需要连接多个表时,比如查询订单的商品表,需要查询商品的其他信息,其他信息不在订单的商品表,需要连接其他库的表,但是连接的条件基本都是商品ID就可以了,先给一个错误语句(查询之间的嵌套,效率很...

    MySQL 多表关联一对多查询实现取最新一条数据的方法示例

    本文实例讲述了MySQL 多表关联一对多查询实现取最新一条数据的方法。分享给大家供大家参考,具体如下: MySQL 多表关联一对多查询取最新的一条数据 遇到的问题 多表关联一对多查询取最新的一条数据,数据出现重复 ...

    MySQL left join操作中on和where放置条件的区别介绍

    LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 ...

    MySQL的LEFT JOIN表连接的进阶学习教程

    比如说在LEFT JOIN查询里,一般来说左表就是主表,但这只是经验之谈,很多时候经验主义是靠不住的,为了说明问题,先来个例子,建两个演示用的表categories和posts: CREATE TABLE IF NOT EXISTS `categories` ( `...

    MySQL查询把多列返回结果集拼装成一个字段

    mysql中有种可以通过join相关操作进行表与表之间的方式查询不同结果集,但是在一对多的情况下,关键查询的结果是多条的.例如:班级和学习的关系,我想很直观的看到班级和学生的情况,列表显示出班级的信息和班级的男生...

    MySQL Left JOIN时指定NULL列返回特定值详解

    coalesce 函数可以接受多个参数,将会返回这些参数中第一个非NULL的值,若提供的参数全部为NULL,则返回NULLifnull 函数和coalesce功能一样,只是只可以接受两个参数if 函数接受三个参数,实现类似于三元判断符(?...

    浅谈mysql中多表不关联查询的实现方法

    这种是大家常常使用的,可是有时候我们会需要去同时查询两个或者是多个表的时候,这些表又是没有互相关联的,比如要查user表和user_history表中的某一些数据,这个时候就是所谓的不关联查询了。 这时候用的是union ...

    Mysql中Join的使用实例详解

    本章节我们将向大家介绍如何使用MySQL 的 JOIN 在两个或多个表中查询数据。 你可以在SELECT, UPDATE 和 DELETE 语句中使用Mysql 的 join 来联合多表查询。 以下我们将演示MySQL LEFT JOIN 和 JOIN 的使用的不同之处...

    MySQL中join语句的基本使用教程及其字段对性能的影响

    SQL(MySQL) JOIN 用于根据两个或多个表中的字段之间的关系,从这些表中得到数据。 JOIN 通常与 ON 关键字搭配使用,基本语法如下: … FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditiona table1 通常称为左...

    MySQL IF、 Bewteen、 AS、 Date_Format、Left join on等关键字实例

    我们在写SQL时候,往往会需要格式化或多表联合查询,现在来一个实例看看这个问题 SELECT t.id, t.topic_title AS title, IF(sch.is_true='1','答案正确','答案错误') as answer, DATE_FORMAT(sch.create_time, '%Y-%...

    MySQL中基本的多表连接查询教程

     由于其返回的结果为被连接的两个数据表的乘积,因此当有WHERE, ON或USING条件的时候一般不建议使用,因为当数据表项目太多的时候,会非常慢。一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN  2. 内连接INNER ...

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

     由于其返回的结果为被连接的两个数据表的乘积,因此当有WHERE, ON或USING条件的时候一般不建议使用,因为当数据表项目太多的时候,会非常慢。一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN  2. 

    在MySQL中使用JOIN语句进行连接操作的详细教程

    在MySQL中联接(join)行为是指两个或多个表到一个表中可以使用连接在SELECT,UPDATE和DELETE语句中加入MySQL表。我们将看到一个例子LEFT JOIN简单的MySQL连接。 在命令提示符使用联接: 假设我们两个表的教程tcount_...

    MySQL常见面试题(表连接类型,count(*),count(列),count(1)的区别,索引,存储引擎,锁,优化)

    内连接:使用inner join,表示查询出来两个表具有关联的数据,无关联性的数据不会查询出来。也可以直接使用多表查询 左外连接:使用left outer join,表示即使左表存在未关联数据,也被查询出来。在left outer join...

    Mysql join联表及id自增实例解析

    两个表的join包含多个条件的等值匹配,都要写道on还是只把一个写到on,其余写道where部分? create table a(f1 int, f2 int, index(f1))engine=innodb; create table b(f1 int, f2 int)engine=innodb; insert ...

    MYSQL

    13 维护 MySQL 安装 13.1 使用myisamchk进行表维护和崩溃恢复 13.1.1 myisamchk的调用语法 13.1.2 myisamchk的内存使用 13.2 13.2 建立一个数据库表维护规范 13.3 获得关于一个表的信息 ...

    MySql 5.1 参考手册.chm

    在同一个数据库中创建多个表的缺陷 7.5. 优化MySQL服务器 7.5.1. 系统因素和启动参数的调节 7.5.2. 调节服务器参数 7.5.3. 控制查询优化器的性能 7.5.4. 编译和链接怎样影响MySQL的速度 7.5.5. MySQL如何使用内存 ...

    浅析Mysql Join语法以及性能优化

    INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。 LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录。 RIGHT JOIN(右连接):与 LEFT JOIN 相反,...

    MySQL中文参考手册.chm

    13 维护 MySQL 安装 13.1 使用myisamchk进行表维护和崩溃恢复 13.1.1 myisamchk的调用语法 13.1.2 myisamchk的内存使用 13.2 13.2 建立一个数据库表维护规范 13.3 获得关于一个表的信息...

Global site tag (gtag.js) - Google Analytics