• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 浅析Mysql Join语法以及性能优化

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了join语法,left join语法,join操作语法错误,mysql join,mysql join的用法等相关知识,希望本文的分享对您有所帮助

一.Join语法概述

join 用于多表中字段之间的联系,语法如下:

table1:左表;table2:右表。

JOIN 按照功能大致分为如下三类:

INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。

LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录。

RIGHT JOIN(右连接):与 LEFT JOIN 相反,取得右表(table2)完全记录,即是左表(table1)并无匹配对应记录。

注意:mysql不支持Full join,不过可以通过UNION 关键字来合并 LEFT JOIN 与 RIGHT JOIN来模拟FULL join.

接下来给出一个列子用于解释下面几种分类。如下两个表(A,B)

二.Inner join

内连接,也叫等值连接,inner join产生同时符合A和B的一组数据。

三.Left join

+----+-----------+------+--------+
| id | name      | id   | name   |
+----+-----------+------+--------+
|  1 | Pirate    |    2 | Pirate |
|  2 | Monkey    | NULL | NULL   |
|  3 | Ninja     |    4 | Ninja  |
|  4 | Spaghetti | NULL | NULL   |
+----+-----------+------+--------+
4 rows in set (0.00 sec)
</div>

left join,(或left outer join:在Mysql中两者等价,推荐使用left join.)左连接从左表(A)产生一套完整的记录,与匹配的记录(右表(B)) .如果没有匹配,右侧将包含null。

如果想只从左表(A)中产生一套记录,但不包含右表(B)的记录,可以通过设置where语句来执行,如下:

同理,还可以模拟inner join. 如下:

求差集:

根据上面的例子可以求差集,如下:

四.Right join

同left join。

五.Cross join

cross join:交叉连接,得到的结果是两个表的乘积,即笛卡尔积

笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。可以扩展到多个集合的情况。类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 用 INNER JOIN语法联接多个表建记录集
  • 浅析Mysql Join语法以及性能优化

相关文章

  • 2018-12-05使用mysql_select_db()函数选择数据库文件教程
  • 2018-12-05SQLServer 设置单词首字母大写
  • 2018-12-05MySQL事务、锁以及应用(二)
  • 2018-12-05MySQL数据库查询操作XML的经验分享
  • 2018-12-05Mysql高级之触发器
  • 2017-05-11深入Mysql字符集设置分析
  • 2018-12-05关于mysql 基础知识的总结
  • 2018-12-05mysql中的跨库关联查询方法实例
  • 2018-12-05rockmongo配置文件config.php
  • 2018-12-05SQL中函数 replace 的参数1的数据类型ntext无效的解决方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 分析一个MySQL的异常查询的案例
    • 列出SQL Server中具有默认值的所有字段的语句
    • MySQL 中查找含有目标字段的表的方法
    • MySQL用户权限管理图文详解
    • 有关mysql_field_flags()函数的文章推荐10篇
    • 关于MySQL关闭子表的外键约束检察方法的详解(图)
    • 详解mysql数据库中的主键
    • CREATE DATABASE语句解释
    • mysql全文搜索 sql命令的写法
    • Microsoft SQL Server 安全问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有