https://sites.google.com/site/349624yu/courses/mysql/mysqldbgjzcx inner join,full outer join,left join,right jion内部连接 inner join 两表都满足的组合full outer 全连 两表相同的组合在一起,A表有,B表没有的数据(显示为null),同样B表有A表没有的显示为(null)A表 left join  B表 左连,以A表为基础,A表的全部数据,B表有的组合.没有的为nu…
JOIN的含义就如英文单词“join”一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接.这里描述先甩出一张用烂了的图,然后插入测试数据. 首先先列举本篇用到的分类(内连接,外连接,交叉连接)和连接方法(如下): A)内连接:join,inner join B)外连接:left join,left outer join,right join,right outer join,union C)交叉连接:cross join 案例表: t_users: t_department: 第…
FULL OUTER JOIN:SELECT column_name(s)FROM table1FULL OUTER JOIN table2ON table1.column_name=table2.column_name; Mysql中可以使用UNION,同时联合LEFT JOIN 与RIGHT JOIN,如: SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.name = table2.name UNION SELECT…
一.数据构建 先建表,再说话 create database Test use Test create table A ( AID ,) primary key, name ), age int ) create table B ( BID ,) primary key, name ), gender int ) 创建完之后,插入数据 ) ) ) ) ) ) ) ) 现在建完两张表,Table A,Table B其各有四条记录,其中有两条记录name是相同的: 二.对比测试 缺省情况下是inne…
对于SQL中inner join.outer join和cross join的区别简介:现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同的: 1.INNER JOIN 产生的结果是AB的交集 SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name          2.LEFT [OUTER] JOIN 产生表A的完全集,而B表中匹配的则有值,没有匹配的…
原文链接:http://www.powerxing.com/sql-join/ 总的来说,四种JOIN的使用/区别可以描述为: left join 会从左表(shop)那里返回所有的记录,即使在右表(sale_detail)中没有匹配的行. right outer join 右连接,返回右表中的所有记录,即使在左表中没有记录与它匹配 full outer join 全连接,返回左右表中的所有记录 在表中存在至少一个匹配时,inner join 返回行. 关键字inner可省略. 具体可以看sta…
这篇博文讲述如何优化扫描速度.我们通过MySQL的JOIN(二):JOIN原理得知了两张表的JOIN操作就是不断从驱动表中取出记录,然后查找出被驱动表中与之匹配的记录并连接.这个过程的实质就是查询操作,想要优化查询操作,建索引是最常用的方式.那索引怎么建呢?我们来讨论下,首先插入测试数据. CREATE TABLE t1 ( id INT PRIMARY KEY AUTO_INCREMENT, type INT ); SELECT COUNT(*) FROM t1; +----------+ |…
这篇博文讲述如何优化JOIN查询带有排序的情况.大致分为对连接属性排序和对非连接属性排序两种情况.插入测试数据. CREATE TABLE t1 ( id INT PRIMARY KEY AUTO_INCREMENT, type INT ); SELECT COUNT(*) FROM t1; +----------+ | COUNT(*) | +----------+ | +----------+ CREATE TABLE t2 ( id INT PRIMARY KEY AUTO_INCREME…
对于SQL中inner join.outer join和cross join的区别很多人不知道,我也是别人问起,才查找资料看了下,跟自己之前的认识差不多, 如果你使用join连表,缺陷的情况下是inner join,另外,开发中使用的left join和right join属于outer join,另外outer join还包括full join. 下面我通过图标让大家认识它们的区别.现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同…
前言: 1.对于mysql,不推荐使用子查询和join是因为本身join的效率就是硬伤,一旦数据量很大效率就很难保证,强烈推荐分别根据索引单表取数据,然后在程序里面做join,merge数据. 2.子查询就更别用了,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程. 3.如果是JOIN的话,它是走嵌套查询的.小表驱动大表,且通过索引字段进行关联.如果表记录比较少的话,还是OK的.大的话业务逻辑中可…