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

首頁 > 開發 > 綜合 > 正文

sql表連接的幾種方式

2024-07-21 02:47:48
字體:
來源:轉載
供稿:網友
sql表連接的幾種方式這里有兩張表TableA和TableB,分別是姓名表和年齡表,用于我們例子的測試數據TableA
idname
1t1
2t2
4t4
TableB
idage
118
220
319
在開發中我們的業務需求有時候是復雜的,多張表聯合查詢的時候是有多種方式的,面對不同的需求,靈活使用不同的表連接方式,那么表連接分成哪幾種呢?表連接有幾種?sql表連接分成外連接、內連接交叉連接。一.外連接概述:外連接包括三種,分別是左外連接、右外連接、全外連接。對應的sql關鍵字:LEFT/RIGHT/FULL OUTER JOIN,通常我們都省略OUTER關鍵字,寫成LEFT/RIGHT/FULL JOIN。在左、右外連接中都會以一種表為基表,基表的所有行、列都會顯示,外表如果和條件不匹配則所有的外表列值都為NULL。全外連接則所有表的行、列都會顯示,條件不匹配的值皆為NULL。 1.左外連接示例: sql語句: select * from TableA left join TableB on TableA.id=TableB.id 結果:
idnameidage
1t1118
2t2220
4t4NULLNULL

注釋:TableA(基表)中所有的行列都顯示了,第三行的條件不匹配所有TableB(外表)的值都為NULL。

2.右外連接示例: sql語句: select * from TableA right join TableB onTableA.id=TableB.id 結果:
idnameidage
1t1118
2t2220
NULLNULL319
注釋:TableB(基表)中所有的行列都顯示了,第三行的條件不匹配所有TableA(外表)的值都為NULL。 3.全外連接示例: sql語句:select * from TableA full join TableB on TableA.id=TableB.id 結果:
idnameidage
1t1118
2t2220
NULLNULL319
4t4NULLNULL

注釋:TableA和TableB的所有行列都顯示了,條件不匹配的行的值為NULL

二.內連接概述:內連接是用比較運算符比較要連接的列的值的連接,不匹配的行不會被顯示。sql關鍵字JOIN 或者INNER JOIN,通常我們寫成JOIN例子: select * from TableA JOIN TableB on TableA.id=TableB.id結果:
idnameidage
1t1118
2t2220
注釋:只返回條件匹配的行以上寫法等效于: select * from TableA,TableB where TableA.id=TableB.id select * from TableA cross join TableB where TableA.id=TableB.id (cross join 后只能用where不能用on)三.交叉連接概念:沒有where條件的交叉連接將產生連接表所涉及的笛卡爾積。即TableA的行數*TableB的行數的結果集。(TableA 3行*TableB 3行=9行)sql語句: select * from TableA cross join TableB結果:
idnameidage
1t1118
2t2118
4t4118
1t1220
2t2220
4t4220
1t1319
2t2319
4t4319
注釋:返回3*3=9行數據,即笛卡爾積。以上寫法等效于:select * from TableA,TableB參考文章:http://323229113.blog.163.com/blog/static/2185362820070172553209/ps:這完全是拋磚引玉,本人寫的不好,希望大神們能多多指點,共同探討,共同學習。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 同仁县| 监利县| 新宁县| 安岳县| 定日县| 永川市| 海阳市| 石台县| 华亭县| 香河县| 阳新县| 隆子县| 德化县| 鸡泽县| 泉州市| 应城市| 巴东县| 柏乡县| 绥德县| 禄丰县| 昌江| 汶川县| 东港市| 隆化县| 射阳县| 稻城县| 长治市| 图们市| 谷城县| 崇州市| 玉山县| 鲁甸县| 紫阳县| 西吉县| 巩留县| 仁寿县| 依安县| 云阳县| 加查县| 博兴县| 喀喇|