MYSQL之左连接、右连接、内连接、外连接、全连接

数据库:MYSQL


建表语句:

 

DROP TABLE IF EXISTS  a_table ;
CREATE TABLE  a_table  (
   a_hero_id  int(11) DEFAULT NULL,
   a_hero_name  varchar(10) DEFAULT NULL,
   a_hero_part  varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of a_table
-- ----------------------------
INSERT INTO  a_table  VALUES ('10', '甄姬', '法师');
INSERT INTO  a_table  VALUES ('11', '李白', '刺客');
INSERT INTO  a_table  VALUES ('12', '廉颇', '坦克');
INSERT INTO  a_table  VALUES ('4', '伽罗', '射手');
INSERT INTO  a_table  VALUES ('5', '亚瑟', '战士');

-- ----------------------------
-- Table structure for b_table
-- ----------------------------
DROP TABLE IF EXISTS  b_table ;
CREATE TABLE  b_table  (
   b_hero_id  int(11) DEFAULT NULL,
   b_hero_name  varchar(10) DEFAULT NULL,
   

b_hero_part  varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of b_table
-- ----------------------------
INSERT INTO  b_table  VALUES ('1', '武则天', '法师');
INSERT INTO  b_table  VALUES ('2', '项羽', '坦克');
INSERT INTO  b_table  VALUES ('3', '赵云', '刺客');
INSERT INTO  b_table  VALUES ('4', '伽罗', '射手');
INSERT INTO  b_table  VALUES ('5', '亚瑟', '战士');

 


内连接


结论:查询结果是两张表的交集部分
SQL语句:select * FROM a_table a INNER JOIN b_table b ON a.a_hero_id = b.b_hero_id

如下图:


左连接


结论:查询出来的结果-->左表数据全部会显示出来;右表只会显示符合条件的结果,将不符合条件的置为null
select * FROM a_table a LEFT JOIN b_table b ON a.a_hero_id = b.b_hero_id

如下图:


右连接


结论:查询出来的结果-->右表数据全部会显示出来;左表只会显示符合条件的结果
SQL语句:select * FROM a_table a RIGHT JOIN b_table b ON a.a_hero_id = b.b_hero_id

全连接


MYSQL目前不支持

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值