![29ce8f2a08b598f9e490fdd2e2d8a637.png](https://i-blog.csdnimg.cn/blog_migrate/41af697ae6e0bde8b132fb09117cdb9a.jpeg)
![1d923e41df12ee7b8f544f44f6f5944a.png](https://i-blog.csdnimg.cn/blog_migrate/20a183c9ea44c979caa3a5a3c953c007.png)
![9dbeef321b7500721abb0d34f671f788.png](https://i-blog.csdnimg.cn/blog_migrate/4f245716ea61886e7c678c6c8ee903ee.png)
点击上方蓝字关注我们
![bf5e0585b0f86fc46d69797ef332e905.png](https://i-blog.csdnimg.cn/blog_migrate/adee144116b11fe07b84d2636d0984f6.jpeg)
UION关联数据结构相同的表
![8b7e802fe748fbafbf9255f03409856e.png](https://i-blog.csdnimg.cn/blog_migrate/8db694ce3d61dc3b619f6b490d814240.png)
UION包括UION 和UION ALL,二者都是用来关联数据结构相同的数据表,二者的区别在于UION关联之后会去除重复的行,而 UION ALL会保留所有的行。
# UNION 示例
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
UNION
SELECT cust_name, cust_contact, cust_email
FROM Customers
# UION ALL示例
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
UNION ALL
SELECT cust_name, cust_contact, cust_email
FROM Customers
JION关联数据结构不同的表
![8b7e802fe748fbafbf9255f03409856e.png](https://i-blog.csdnimg.cn/blog_migrate/8db694ce3d61dc3b619f6b490d814240.png)
JION类型比较多,包括自连接,自然连接,内链接,交叉连接和外链接,其主要类型汇总如下图。
![e6124a7048b01a9f008a4ad0afd8ff28.png](https://i-blog.csdnimg.cn/blog_migrate/9bffa1e0aa99fefc7f66eab2ef2627a2.jpeg)
自连接
两张相同的表,自己和自己连接
SELECT c1.cust_id, c1.cust_name, c1.cust_contact
FROM Customers AS c1, Customers AS c2
WHERE c1.cust_name = c2.cust_name
AND c2.cust_contact = 'Jim Jones';
自然连接
SELECT C.*, O.order_num, O.order_date, OI.prod_id, OI.quantity, OI.item_price
FROM Customers AS C, Orders AS O, OrderItems AS OI WHERE C.cust_id = O.cust_id
AND OI.order_num = O.order_num AND prod_id = 'RGAN01';
内链接
SELECT vend_name, prod_name, prod_price
FROM Vendors INNER JOIN Products
ON Vendors.vend_id = Products.vend_id;
交叉连接
没有联结条件的联结是交叉连接,也称为笛卡尔积
SELECT vend_name, prod_name, prod_price
FROM Vendors, Products;
外连接
1.左外连接
SELECT p.name, pt.name
FROM products p, product_types pt
WHERE p.product_type_id = pt.product_type_id(+)
ORDER BY p.name;
2.全连接
SELECT p.name, pt.name
FROM products p FULL JOIN product_types pt ON p.product_type_id = pt.product_type_id
ORDER BY p.name
3.右连接
SELECT p.name, pt.name
FROM products p, product_types pt
WHERE p.product_type_id(+) = pt.product_type_id
ORDER BY p.name;
总结
![8b7e802fe748fbafbf9255f03409856e.png](https://i-blog.csdnimg.cn/blog_migrate/8db694ce3d61dc3b619f6b490d814240.png)
看了那么多的join,可能你已经看晕了,下面这张图,一图说尽SQL中join的本质。
![bf9d6dd1704fd0fa4704754270810536.png](https://i-blog.csdnimg.cn/blog_migrate/647e0a917b993465a3a8d241a8a91498.jpeg)
转载自码志的《图解 SQL 里的各种 JOIN》https://mazhuang.org/2017/09/11/joins-in-sql/
还不过瘾,来个进阶版,给出伪代码,复用很方便哦。
![d83c5aac5436fe8842df71d64080052f.png](https://i-blog.csdnimg.cn/blog_migrate/6ec6eab2ed8ceacb1f124b1aaa1d4f7a.jpeg)
转载自码志的《图解 SQL 里的各种 JOIN》https://mazhuang.org/2017/09/11/joins-in-sql/
参考书籍:《SQL必知必会》
![1f6d0b8c2a0d6a9d7c0d48d44c57083f.png](https://i-blog.csdnimg.cn/blog_migrate/7c8fc5716c5ec2e79a3b2c7749ddc3e6.png)
![9c3eda01657926f77462ddbaa4ea9ee0.png](https://i-blog.csdnimg.cn/blog_migrate/55ff9986bea74cda7f1dc525b0f67e3d.png)
SQL系列文章持续更新中
往期推荐
SQL知识大全(一):数据库的语言分类你都知道吗?
史上最全的SQL知识点汇总,错过这次再等一年
游戏行业指标体系大全(一)
游戏行业指标体系大全(二)
数据岗知识体系及岗位介绍
![3f54a1c928b7e3793eaddbd703531829.png](https://i-blog.csdnimg.cn/blog_migrate/6105101e6da31a4cfb258ca0f2cc6bd9.png)
分享数据知识,成就数据理想