mysql inner join 和join_mysql中的7种联表join

建表

在这里呢我们先来建立两张有外键关联的张表。

CREATE DATABASE db0206;USE db0206;CREATE TABLE `db0206`.`tbl_dept`(  `id` INT(11) NOT NULL AUTO_INCREMENT,  `deptName` VARCHAR(30),  `locAdd` VARCHAR(40),  PRIMARY KEY (`id`)) ENGINE=INNODB CHARSET=utf8;CREATE TABLE `db0206`.`tbl_emp`(  `id` INT(11) NOT NULL AUTO_INCREMENT,  `name` VARCHAR(20),  `deptId` INT(11),  PRIMARY KEY (`id`),  FOREIGN KEY (`deptId`) REFERENCES `db0206`.`tbl_dept`(`id`)) ENGINE=INNODB CHARSET=utf8;/*插入数据*/INSERT INTO tbl_dept(deptName,locAdd) VALUES('RD',11);INSERT INTO tbl_dept(deptName,locAdd) VALUES('HR',12);INSERT INTO tbl_dept(deptName,locAdd) VALUES('MK',13);INSERT INTO tbl_dept(deptName,locAdd) VALUES('MIS',14);INSERT INTO tbl_dept(deptName,locAdd) VALUES('FD',15);INSERT INTO tbl_emp(NAME,deptId) VALUES('z3',1);INSERT INTO tbl_emp(NAME,deptId) VALUES('z4',1);INSERT INTO tbl_emp(NAME,deptId) VALUES('z5',1);INSERT INTO tbl_emp(NAME,deptId) VALUES('w5',2);INSERT INTO tbl_emp(NAME,deptId) VALUES('w6',2);INSERT INTO tbl_emp(NAME,deptId) VALUES('s7',3);INSERT INTO tbl_emp(NAME,deptId) VALUES('s8',4);

文氏图与SQL语句的编写以及查询结果

内连接

内连接文氏图

fea15a3f3937c8f2a34a76e324c3609d.png

执行的sql语句以及执行的查询结果

  • 执行的sql语句

select * from tbl_dept a inner join tbl_emp b on a.id=b.deptId;

  • 查询结果

    cf9f01550bf636478a69cbe455c19e91.png

左外连接

左外连接文氏图

e175915f7fb8bf3089f57ae59f4ad88d.png

左连接

执行的sql语句以及执行的查询结果
  • 执行的sql语句

select * from tbl_dept a left join tbl_emp b on a.id=b.deptId;

  • 查询结果

    f168ac69dc209f9ddacc1c2026803cdf.png

右外连接

右外连接文氏图

b717492ff3b4a66e09af4768d564839e.png

执行的sql语句以及执行的查询结果
  • 执行的sql语句

select * from tbl_dept a right join tbl_emp b on a.id=b.deptId;

  • 查询结果

    823f68c09a952491e4577186febfc098.png

左连接

左连接文氏图

72cf4c21d165eea6c9d25b271bb9a631.png

执行的sql语句以及执行的查询结果
  • 执行的sql语句

select * from tbl_dept a left join tbl_emp b on a.id=b.deptId where b.deptId is null;
  • 查询结果

b50e045957ef0919bab6def5f16392b4.png

右连接

右连接文氏图

b0c7e0edc64e2a09f4f1517a6d363c6c.png

右连接

执行的sql语句以及执行的查询结果
  • 执行的sql语句

select * from tbl_dept a right join tbl_emp b on a.id=b.deptId where a.id is null;
  • 查询结果

692cabf280d9696039f1d97f1aa86905.png

全连接

全连接文氏图

e213d33bc5bd32b4ffe23b0fe05ddd85.png

执行的sql语句以及执行的查询结果
  • 执行的sql语句

select * from tbl_dept a right join tbl_emp b on a.id=b.deptIdunionselect * from tbl_dept a left join tbl_emp b on a.id=b.deptId;

  • 查询结果

    f622116846eb186e3410ee740633144c.png

两张表中都没有出现的数据集

文氏图

731820900b2385c367e54606ceffcf89.png

执行的sql语句以及执行的查询结果
  • 执行的sql语句

select * from tbl_dept a right join tbl_emp b on a.id=b.deptId where a.id is null unionselect * from tbl_dept a left join tbl_emp b on a.id=b.deptId where
 b.deptId is null;
  • 查询结果

c23cb9b885c266fbeaba31754269dc33.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值