MySQL表连接

SELECT DISTINCT
	< select_list > 
FROM
	< left_table > < join_type >
JOIN < right_table > ON <join_condition>
WHERE
	< where_condition > 
GROUP BY
	< group_by_list > 
HAVING
	< having_condition > 
ORDER BY
	< order_by_condition > 
LIMIT < limit_number >
CREATE TABLE `employ` (
  `id` int(10) NOT NULL,
  `name` char(10) DEFAULT NULL,
  `dept_no` int(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `employ` VALUES (1,'张三',1),(2,'李四',2);

CREATE TABLE `dept` (
  `dept_no` int(10) NOT NULL,
  `dept_name` char(10) DEFAULT NULL,
  `dept_admin` char(10) DEFAULT NULL,
  PRIMARY KEY (`dept_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `dept` VALUES (2,'人力资源部','李四'),(3,'财务部',NULL);

笛卡尔积操作 N*M

select employ.*, dept.* from employ join dept ;

A ∪ ( A ∩ B ) A \cup (A\cap B) A(AB)

select a.*, b.* from employ a left join dept b on a.dept_no = b.dept_no ;

在这里插入图片描述

B ∪ ( A ∩ B ) B \cup (A\cap B) B(AB)

select a.*, b.* from employ a right join dept b on a.dept_no = b.dept_no ;

在这里插入图片描述

A ∩ B A\cap B AB

select a.*, b.* from employ a inner join dept b on a.dept_no = b.dept_no ;

在这里插入图片描述

A − ( A ∩ B ) A - (A\cap B) A(AB)

select a.*, b.* from employ a left join dept b on a.dept_no = b.dept_no where b.dept_no is null ;

在这里插入图片描述

B − ( A ∩ B ) B - (A\cap B) B(AB)

select a.*, b.* from employ a right join dept b on a.dept_no = b.dept_no where a.dept_no is null ;

在这里插入图片描述

A ∪ B − ( A ∩ B ) A\cup B - (A\cap B) AB(AB)

select a.*, b.* from employ a left join dept b on a.dept_no = b.dept_no where b.dept_no is null
union 
select a.*, b.* from employ a right join dept b on a.dept_no = b.dept_no where a.dept_no is null ;

在这里插入图片描述

A ∪ B A\cup B AB

select a.*, b.* from employ a left join dept b on a.dept_no = b.dept_no  
union 
select a.*, b.* from employ a right join dept b on a.dept_no = b.dept_no ;

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值