国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

內連接,外鏈接,交叉鏈接的區別

2024-07-21 02:53:20
字體:
來源:轉載
供稿:網友

對于SQL中inner join、outer join和cross join的區別很多人不知道,我也是別人問起,才查找資料看了下,跟自己之前的認識差不多,如果你使用join連表,缺陷的情況下是inner join,另外,開發中使用的left join和right join屬于outer join,另外outer join還包括full join.下面我通過圖標讓大家認識它們的區別。現有兩張表,Table A 是左邊的表。Table B 是右邊的表。其各有四條記錄,其中有兩條記錄name是相同的:Table A 是左邊的表。Table B 是右邊的表。

1.INNER JOIN 產生的結果是AB的交集

SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.nameINNER JOIN 產生的結果是AB的交集          INNER JOIN 產生的結果是AB的交集2.LEFT [OUTER] JOIN 產生表A的完全集,而B表中匹配的則有值,沒有匹配的則以null值取代。SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.nameLEFT [OUTER] JOIN 產生表A的完全集,而B表中匹配的則有值           LEFT [OUTER] JOIN 產生表A的完全集,而B表中匹配的則有值3.RIGHT [OUTER] JOIN 產生表B的完全集,而A表中匹配的則有值,沒有匹配的則以null值取代。SELECT * FROM TableA RIGHT OUTER JOIN TableB ON TableA.name = TableB.name圖標如left join類似。

4.FULL [OUTER] JOIN 產生A和B的并集。對于沒有匹配的記錄,則會以null做為值。SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name 你可以通過is NULL將沒有匹配的值找出來:SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.nameWHERE TableA.id IS null OR TableB.id IS null  FULL [OUTER] JOIN 產生A和B的并集           FULL [OUTER] JOIN 產生A和B的并集

5. CROSS JOIN 把表A和表B的數據進行一個N*M的組合,即笛卡爾積。如本例會產生4*4=16條記錄,在開發過程中我們肯定是要過濾數據,所以這種很少用。SELECT * FROM TableA CROSS JOIN TableB 相信大家對inner join、outer join和cross join的區別一目了然了。 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贵港市| 石棉县| 岗巴县| 金湖县| 清新县| 二连浩特市| 永清县| 固镇县| 贡嘎县| 家居| 阿拉尔市| 渭南市| 上饶市| 太仆寺旗| 宜丰县| 会昌县| 准格尔旗| 昂仁县| 东乌珠穆沁旗| 高邮市| 乌鲁木齐市| 星座| 曲阜市| 宣汉县| 钟山县| 连州市| 益阳市| 宁德市| 南溪县| 望谟县| 枝江市| 湘阴县| 兴化市| 辽中县| 旬邑县| 含山县| 红安县| 泰和县| 丽江市| 宁波市| 嘉定区|