交集sql
㈠ sql如何查詢兩個表的交集
首先倆個表要存在關聯關系,例:表A中的ID列和表B中的ID列是一樣的數據,且唯一
則:
select * from A
left jion B on A.ID=B.ID
㈡ 求多個表交集的SQL語句是什麼呀
使用 EXISTS 和 NOT EXISTS 查找交集與差集
使用 EXISTS 和 NOT EXISTS 引入的子查詢可用於兩種集合原理的操作:交集與差集。兩個集合的交集包含同時屬於兩個原集合的所有元素。差集包含只屬於兩個集合中的第一個集合的元素。
city 列中 authors 和 publishers 的交集是作者和出版商共同居住的城市的集合。
USE pubs
SELECT DISTINCT city
FROM authors
WHERE EXISTS
(SELECT *
FROM publishers
WHERE authors.city = publishers.city)
下面是結果集:
city
--------
Berkeley
(1 row(s) affected)
當然,該查詢可以寫成一個簡單的聯接。
USE pubs
SELECT DISTINCT authors.city
FROM authors INNER JOIN publishers
ON authors.city = publishers.city
city 列中 authors 和 publishers 的差集是作者所居住的、但沒有出版商居住的所有城市的集合,也就是除 Berkeley 以外的所有城市。
USE pubs
SELECT DISTINCT city
FROM authors
WHERE NOT EXISTS
(SELECT *
FROM publishers
WHERE authors.city = publishers.city)
該查詢也可以寫成:
USE pubs
SELECT DISTINCT city
FROM authors
WHERE city NOT IN
(SELECT city
FROM publishers)
㈢ SQL集合運算:差集、交集、並集
原
SQL集合運算:差集、交集、並集
2011年03月30日 15:41:00
閱讀數:15446
1、差集( except )
select a from t_a
except
select a from t_b
-- 也可寫作:
select a from t_a where a not in (select a from t_b)
-- 多個欄位時:
select a,b from t_a
except
select a,b from t_b
-- 多欄位的查集也可寫成:
select a,b from t_a where (a,b) not in (select a,b from t_b)
2、交集( intersect )
select a from t_a
intersect
select a from t_b
-- 也可寫作:
select a from t_a where a in (select a from t_b)
3、並集( union )
select a from t_a
union distinct
select a from t_b
㈣ 如何使用SQL語句求出交集
求交集嫌漏團的關鍵搜沒字是 intersect ,例芹橘:
select * from emp where deptno in (10,20)
intersect
select * from emp where deptno in (20,30);