您好,登錄后才能下訂單哦!
這篇文章主要介紹了mysql如何查兩個表的交集,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
mysql查詢兩個表的交集方法:1、將兩個數據的數據列用UNION ALL關鍵字合并查詢交集;2、使用帶IN關鍵字的查詢;3、使用帶EXISTS關鍵字的子查詢。
mysql查詢兩個表的交集方法:
1、兩個要求交集的表(列)的結構要一致,對應的字段數,字段類型都應該相同;將兩個數據的數據列用 UNION ALL 關鍵字合并;將上面的所有需要比較的列 GROUP BY ;最后 HAVING COUNT(任意一列,不能多列)>1,那么就是交集。
SELECT a.* FROM( SELECT * from teacher UNION ALL SELECT * from student)a GROUP BY a.id,a.name,a.sex HAVING COUNT(a.sex)>1
2、內連接或者等值連接。jion(inner jion)。將兩個數據列,條件必須涉及需要比較的列,這里沒有比較sex列,所以比2步多了一行數據。
SELECT * FROM student AS a JOIN teacher AS b ON a.name =b.name AND a.ID=b.ID或者SELECT * FROM student AS a inner JOIN teacher AS b ON a.name =b.name AND a.ID=b.ID
3、帶IN關鍵字的查詢。需要比較多少列數據是相同的就必須有多少個IN。這個時候一定要控制列,列太多不建議用。
SELECT * FROM student AS a where a.name in (select name from teacher )AND a.ID in (select ID from teacher);
4、帶EXISTS關鍵字的子查詢。這個語句說白了也是通過判斷teacher中是否有滿足兩個相等的條件,來得出來的。
SELECT * FROM student AS a where EXISTS (select *from teacher b where a.name =b.name AND a.ID=b.ID)
感謝你能夠認真閱讀完這篇文章,希望小編分享mysql如何查兩個表的交集內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。