MySQL中视图的使用及多表INNER JOIN的技巧分享

 更新时间:2014年06月29日 14:10:17   投稿:mdxy-dxy  
做多表关联查询,如果表间关系非常清晰,结构简单,使用视图的方式比自己反复写复杂跨表SQL要容易的多

创建视图
 
Sql代码 

CREATE VIEW view_name AS 
SELECT t1.xxx, t2.xxx, t3.xxx 
FROM (table1 t1 
INNER JOIN table2 t2 ON t1.fid = t2.fid) 
INNER JOIN table3 t3 ON t1.mid = t3.mid; 

这里使用了3表关联,对于多表关联的 INNER JOIN 写法有一个技巧

1. 先写最简单的2表关联 INNER JOIN
2. 然后使用 () 从 FROM 之后到语句结尾全部扩起来
3. 在语句结尾开始连接与下一个表的 INNER JOIN

记住这个原则,未来进行4表关联,5表关联就都不是什么难事了 
 
删除视图
 

复制代码 代码如下:

DROP VIEW view_name 

以下是其它网友的补充:

多表联接是十分有用的技术,因为某 些情况下,我们需要跨越多个表查询数据。

语法格式:
FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表X ON Member.字段号=表X.字段号,只要套用该格式就可以了。

注意事项:
在输入字母过程中,一定要用英文半角标点符号,单词之间留一半角空格;
在建立数据表时,如果一个表与多个表联接,那么这一个表中的字段必须是“数字”数据类型,而多个表中的相同字段必须是主键,而且是“自动编号”数 据类型。否则,很难联接成功。
代码嵌套快速方法:如,想连接五个表,则只要在连接四个表的代码上加一个前后括号(前括号加在FROM的后面,后括号加在代码的末尾即可),然后 在后括号后面继续添加“INNER JOIN 表名X ON 表1.字段号=表X.字段号”代码即可,这样就可以无限联接数据表了。
 

连接两个数据表的用法:
FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号

连接三个数据表的用法:
FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号

连接四个数据表的用法:
FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号

连接五个数据表的用法:
FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表5 ON Member.字段号=表5.字段号

相关文章

  • Mysql中事务ACID的实现原理详解

    Mysql中事务ACID的实现原理详解

    这篇文章主要给大家介绍了关于Mysql中事务ACID实现原理的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • MySQL 5.5/5.6/5.7及以上版本安装包安装时如何选择安装路径

    MySQL 5.5/5.6/5.7及以上版本安装包安装时如何选择安装路径

    最近mysql官方网站的安装包从5.5-5.7起都是新版的安装界面,各种环境要求支持,看样子以后老点的系统安装都够费劲的了,这里脚本之家小编特为大家整理一下安装步骤与方法
    2016-04-04
  • MySQL数据备份、还原、数据库迁移以及表的导出和导入

    MySQL数据备份、还原、数据库迁移以及表的导出和导入

    作为流行的开源数据库管理系统,MySQL的使用者众多,为了维护数据安全性,数据备份是必不可少的,下面这篇文章主要给大家介绍了关于MySQL数据备份、还原、数据库迁移以及表的导出和导入的相关资料,需要的朋友可以参考下
    2022-11-11
  • MySQL优化之InnoDB优化

    MySQL优化之InnoDB优化

    InnoDB是为Mysql处理巨大数据量时的最大性能设计。它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。在数据量大的网站或是应用中Innodb是倍受青睐的。那么它就不需要优化了吗,答案很显然:当然不是!!!
    2017-03-03
  • MySQL中触发器的基础学习教程

    MySQL中触发器的基础学习教程

    这篇文章主要介绍了MySQL中触发器的基础学习教程,包括对触发器的创建和管理等基本知识,着力推荐!需要的朋友可以参考下
    2015-12-12
  • MySQL InnoDB锁类型及锁原理实例解析

    MySQL InnoDB锁类型及锁原理实例解析

    这篇文章主要为大家介绍了MySQL InnoDB锁类型及锁原理实例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项

    MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项

    以下的文章主要介绍的是MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项是值得我们大家注意的,我们大家可能不知道过多的对索引进行使用将会造成滥用,需要的朋友可以了解下
    2012-12-12
  • mysql 5.6.24 安装配置方法图文教程

    mysql 5.6.24 安装配置方法图文教程

    这篇文章主要为大家分享了mysql 5.7.14安装配置方法图文教程,感兴趣的朋友可以参考一下
    2016-08-08
  • 详解mysql数据库如何开启慢查询日志

    详解mysql数据库如何开启慢查询日志

    这篇文章主要介绍了详解mysql数据库如何开启慢查询日志的相关资料,需要的朋友可以参考下
    2017-03-03
  • 一次神奇的MySQL死锁排查记录

    一次神奇的MySQL死锁排查记录

    这篇文章主要给大家介绍了一次神奇的MySQL死锁排查的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03

最新评论