mysql 左连接、右连接和内连接

2016-02-19 09:58 3 1 收藏

下面是个mysql 左连接、右连接和内连接教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - 编程语言 】

脚本如下:
drop table table1;
CREATE TABLE `andrew`.`table1`
(
`name` VARCHAR(32) NOT NULL,
`city` VARCHAR(32) NOT NULL
)
ENGINE = MyISAM;
insert into TABLE1(name, city) values ('Person A', 'BJ');
insert into TABLE1(name, city) values ('Person B', 'BJ');
insert into TABLE1(name, city) values ('Person C', 'SH');
insert into TABLE1(name, city) values ('Person D', 'SZ');
commit;
drop table table2;
CREATE TABLE `andrew`.`table2`
(
`name` VARCHAR(32) NOT NULL,
`city` VARCHAR(32) NOT NULL
)
ENGINE = MyISAM;
insert into TABLE2(name, city) values ('Person W', 'BJ');
insert into TABLE2(name, city) values ('Person X', 'SH');
insert into TABLE2(name, city) values ('Person Y', 'SH');
insert into TABLE2(name, city) values ('Person Z', 'NJ');
commit;
1. 外连接 – 左连接结果

table1居左,故谓之左连接。这种情况下,以table1为主,即table1中的所有记录均会被列出。有一下三种情况:
a. 对于table1中的每一条记录对应的城市如果在table2中也恰好存在而且刚好只有一条,那么就会在
返回的结果中形成一条新的记录。如上面Person A和Person B对应的情况。
b. 对于table1中的每一条记录对应的城市如果在table2中也恰好存在而且有N条,那么就会在返回的结果中形成N条新的记录。如上面的Person C对应的情况。
c. 对于table1中的每一条记录对应的城市如果在table2中不存在,那么就会在返回的结果中形成一条
条新的记录,且该记录的右边全部NULL。如上面的Person D对应的情况。
不符合上面三条规则的记录不会被列出。
2. 外连接 – 右连接结果

table2居右,故谓之右连接。这种情况下,以table2为主,即table2中的所有记录均会被列出。有一下三种情况:
a. 对于table2中的每一条记录对应的城市如果在table1中也恰好存在而且刚好只有一条,那么就会在
返回的结果中形成一条新的记录。如上面Person X和Person Y对应的情况。
b. 对于table2中的每一条记录对应的城市如果在table1中也恰好存在而且有N条,那么就会在返回的结果中形成N条新的记录。如上面的Person W对应的情况。
c. 对于table2中的每一条记录对应的城市如果在table1中不存在,那么就会在返回的结果中形成一条
条新的记录,且该记录的左边全部NULL。如上面的Person Z对应的情况。
不符合上面三条规则的记录不会被列出。
3. 内连接

内连接的数据记录中,不会存在字段为NULL的情况。可以简单地认为,内链接的结果就是在左连接或者右连接的结果中剔除存在字段为NULL的记录后所得到的结果。甚至可以认为,如果两个表中仅分别剩下内连接运算后所得的数据记录,如table1中只有Person A、Person B和Person C,table2中只有Person W、Person X和Person Y,那么这两个表的之间的左连接和右连接的返回的结果是一样的。
注意:select * from table1 a inner join table2 b on a.city = b.city 和select * from table1 a join table2 b on a.city = b.city 的效果是一样的,即如果join的左边没有诸如left、right或者inner这样的关键字时,缺省的是内连接。另,MySQL不支持full join。

来源:https://www.tulaoshi.com/n/20160219/1592865.html

延伸阅读
标签: PHP
  ODBC 是指开放数据连接,它是微软主导的数据驱动程序,它可以与其它数据连接,通过SQL语言来对数据进行操作的,当然PHP也提供了对ODBC数据连接的函数, 用PHP与ODBC连接主要通过几个函数来完成的,    首先先来认识几个与ODBC接口的函数: int odbc_connect(string dsn, string user, string password, int [cursor_type]);...
标签: Web开发
一、软件下载 直接到MySQL官网下载以下两个工具:mysql-5.1.32-win32.msi、mysql-gui-tools-5.0-r17-win32.msi 前者是MySQL的安装文件,后者是MySQL Tool安装文件,包括JDBC. 二、环境配置 把mysql-connector-java-5.0.4-bin.jar从MySQL\MySQL Tools for 5.0\java\lib拷贝到D:\Tomcat 6.0\lib下,然后在classpath里面加入D:\Tomcat 6.0\...
标签: 软件教程
flashfxp是一款编辑们必备的一款软件,做东西上传就用它了。刚刚开始使用flashfxp有点复杂,下面小编就为大家介绍一下flashfxp怎么连接,希望能帮到大家 1、打开FlashFXP,先点击工具栏的“选项”----“参数设置” 2、左侧选择”连接“下的“FTP”,连接模式选择“被动模式(PASV)”,点击“确定”退出设置 ...
标签: Web开发
JSP连接MySql数据库方法 首先先将MySql的数据库连接驱动拷贝到Tomcat/common/lib包下 下载mysql-connector-java-5.1.6.zip http://mysql.cs.pu.edu.tw/Downloads/Connector-J/mysql-connector-java-5.1.6.zip 配置Tomcat的虚拟目录-略 创建jdbcMySql.jsp页面 页面代码如下: 代码如下: %@ page contentType="text/html;charset=gb231...
网站后台数据库转为Mysql,现在使用Perl连接数据库就方便多了。 通过DBI,Perl可以很容易的连接到数据库: #!/bin/perl use DBI; # Connect to target DB my $dbh = DBI-connect("DBI:mysql:database=eygle;host=localhost","username","password", {'RaiseError' = 1}); # Insert one row my $rows = $dbh-do("INSERT INTO test ...

经验教程

124

收藏

20
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部