查询的内连接 外连接 自连接

CREATE TABLE employee(
	id INT,
	empName VARCHAR(10),
	deptId INT
)

CREATE TABLE dept(
	id INT,
	depName VARCHAR(10)
)

INSERT INTO employee VALUES (1, '张三', 1);
INSERT INTO employee VALUES (2, '李四', 1);
INSERT INTO employee VALUES (3, '王武', 2);
INSERT INTO employee VALUES (4, '陈六', 3);
INSERT INTO employee(id, empName) VALUES (5, '刘五');

INSERT INTO dept VALUES (1, '部门一');
INSERT INTO dept VALUES (2, '部门二');
INSERT INTO dept VALUES (3, '部门三');
INSERT INTO dept VALUES (4, '部门四');

SELECT * FROM employee;
SELECT * FROM dept;

--内连接等价于where形式
SELECT a.empName, b.depName FROM employee a, dept b WHERE a.deptId = b.id


--内连接等价于WHERE
SELECT a.empName, b.depName
	FROM employee a
	INNER JOIN dept b
	ON a.deptId=b.id;

--以左边表为准去匹配右边
SELECT a.empName, b.depName
	FROM employee a
	LEFT OUTER JOIN dept b
	ON a.deptId=b.id;

--以右边表为准 去匹配左边
SELECT a.empName, b.depName
	FROM employee a
	RIGHT OUTER JOIN dept b
	ON a.deptId=b.id;


--自连接:查自身的上司
SELECT a.empName, b.empName
	FROM employee a
	LEFT OUTER JOIN employee b
	ON a.deptId=b.id;

Oracle左外连接
Select * from dave a,bl b where a.id=b.id(+);

Oracle右外连接
Select * from dave a,bl b where a.id(+)=b.id;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值