MySQL Intersection:
交集是指兩個(gè)或多個(gè)集合中都存在的元素。
在 MySQL 中可以使用 INNER JOIN 或者 INTERSECT 關(guān)鍵字來(lái)計(jì)算交集。
例如,我們有兩個(gè)表 A 和 B,都有一個(gè)列叫做 id:
CREATE TABLE A( id INT PRIMARY KEY, name VARCHAR(10) ); CREATE TABLE B( id INT PRIMARY KEY, name VARCHAR(10) );
如果想要計(jì)算 A 表和 B 表中 id 相同的元素,可以使用 INNER JOIN 關(guān)鍵字:
SELECT A.id, A.name FROM A INNER JOIN B ON A.id = B.id;
如果想要使用 INTERSECT 關(guān)鍵字,可以先將 A 表和 B 表的 id 取出來(lái),并用 UNION ALL 組合在一起,再使用 GROUP BY 和 HAVING 統(tǒng)計(jì)交集:
SELECT id FROM ( SELECT id FROM A UNION ALL SELECT id FROM B ) temp GROUP BY id HAVING COUNT(*) >1;
以上就是使用 MySQL INNER JOIN 和 INTERSECT 計(jì)算交集的方法。