数据库内连接、左连接、右连接详解

    用一句话概括就是:左连接就是左边全部保留按条件查出右边,右连接就是右边全部保留按条件查出左边。

说得有点抽象,其实并没有什么难度,还是自己运行下数据库就明白了。

数据库建表语句如下:

create database if not exists `emp`;

USE `emp`;

DROP TABLE IF EXISTS `dept`;

CREATE TABLE `dept` (
  `depid` varchar(50) NOT NULL,
  `deptname` varchar(100) default NULL,
  PRIMARY KEY  (`depid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


insert  into `dept`(`depid`,`deptname`) values ('01','部门1'),('02','部门2'),('03','部门3'),('04','部门4');


DROP TABLE IF EXISTS `emp`;

CREATE TABLE `emp` (
  `empid` varchar(50) NOT NULL,
  `empname` varchar(50) default NULL,
  `depid` varchar(50) default NULL,
  PRIMARY KEY  (`empid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


insert  into `emp`(`empid`,`empname`,`depid`) values ('0001','柳梦璃','01'),('0002','韩菱纱','01'),('0003','云天河','02'),('0004','慕容紫英','03'),('0005','玄霄',NULL),('0006','九天玄女',NULL);



从上表可以看出,部门4下没有员工,玄霄和九天玄女没有所属部门。


左连接:select * from dept d left join emp e on d.depid=e.depid;


右连接:select * from dept d right join emp e on d.depid=e.depid;



内连接:select * from dept d inner join emp e on d.depid=e.depid;



内连接可省略inner关键字。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java高知社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值