伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

SQL join区别

来源:网络转载 浏览:62次 时间:2022-11-19

首先创建需要JOIN的两个表:

CREATE TABLE `tbl_emp` (
   `id` INT(11) NOT NULL AUTO_INCREMENT,
   `name` VARCHAR(30) DEFAULT NULL,
   `deptID` VARCHAR(40) DEFAULT NULL,
   PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE `tbl_dept` (
   `id` INT(11) NOT NULL AUTO_INCREMENT,
   `deptName` VARCHAR(30) DEFAULT NULL,
   `locAdd` VARCHAR(40) DEFAULT NULL,
   PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

我们可以看到数据的呈现:



1、A ∩ B



SELECT *
 FROM tbl_emp a
 INNER JOIN tbl_dept b # 共有
 ON a.deptID = b.ID



2、A ( = A ∩ B + A* )



SELECT *
 FROM tbl_emp a
 LEFT JOIN tbl_dept b
 ON a.deptID = b.ID



3、B ( = A ∩ B + B* )



SELECT *
 FROM tbl_emp a
 RIGHT JOIN tbl_dept b
 ON a.deptID = b.ID



4. A* ( = A - A ∩ B )



SELECT *
 FROM tbl_emp a
 LEFT JOIN tbl_dept b 
 ON a.deptID = b.ID # ON时主表保留
 WHERE B.ID IS NULL # 筛选A表数据



5. B* ( = B - A ∩ B )



SELECT *
 FROM tbl_emp a
 RIGHT JOIN tbl_dept b 
 ON a.deptID = b.ID # ON时主表保留
 WHERE a.deptID IS NULL # 筛选B表数据



6. A ∪ B



SELECT < select_list >
 FROM TableA A
 FULL OUTER JOIN TableB B ## FULL OUTER 仅oracle支持
 ON A.Key = B.Key


-- MySQL格式
 SELECT *
 FROM tbl_emp a
 LEFT JOIN tbl_dept b 
 ON a.deptID = b.ID 
 UNION
 SELECT *
 FROM tbl_emp a
 RIGHT JOIN tbl_dept b 
 ON a.deptID = b.ID



7. A ∪ B - A ∩ B



SELECT < select_list >
 FROM TableA A
 FULL OUTER JOIN TableB B
 ON A.Key = B.Key
 WHERE A.Key IS NULL OR B.Key IS NULL


-- MySQL格式
 SELECT *
 FROM tbl_emp a
 LEFT JOIN tbl_dept b 
 ON a.deptID = b.ID 
 UNION
 SELECT *
 FROM tbl_emp a
 RIGHT JOIN tbl_dept b 
 ON a.deptID = b.ID
 WHERE a.deptID IS NULL OR b.ID IS NULL



作者:九道门聊数据
链接:https://www.zhihu.com/question/486152274/answer/2300115455
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net