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

首頁 > 開發 > 綜合 > 正文

特殊聯接查詢

2024-07-21 02:49:36
字體:
來源:轉載
供稿:網友
特殊聯接查詢

除了傳統的三種聯接查詢外,還有一些特殊的聯接查詢。這篇文章就將對其進行總結,主要有以下幾種特殊的聯接查詢。

1,組合聯接查詢

2,不等聯接查詢

3,多表聯接查詢

組合聯接查詢

組合聯接就是聯接條件涉及聯接兩邊的多個列的查詢。當需要根據主鍵-外鍵關系來聯接兩個表,而且主外鍵關系是組合的(即關系基于多個列)時,通常就要使用組合聯接。

例如,假設dbo.Table2表上定義了兩個外鍵(col1列和col2列),引用了dbo.Table1表的col1和col2列,現在要寫一個根據主外鍵關系來聯接兩個表的查詢語句。該查詢語句可以寫成下面這樣:

-- 組合聯接查詢FROM dbo.Table1 AS T1JOIN dbo.Table2 AS T2 ON T1.col1= T2.col1 AND T1.col2= T2.col2
不等聯接查詢

聯接條件只包含等號運算符的聯接我們一般稱之為等值聯接。而不等聯接剛好相反,它的聯接條件包含除了等號以外的其它運算符。

作為一個不等聯接查詢的例子,以下查詢語句對Employees表的兩個實例進行聯接,以生成職員之間的唯一配對。

USE TSQLFundamentals2008;GO-- 不等聯接查詢SELECT employees1.empid,employees1.firstname,employees1.lastname,employees2.empid,employees2.firstname,employees2.lastname FROM HR.Employees AS employees1JOIN HR.Employees AS employees2 ON employees1.empid<employees2.empidORDER BY employees1.empid

查詢結果:

image

多表聯接查詢

如果說上面兩種特殊聯接用得還比較少的話,那么多表聯接查詢用得就比較多。

一個聯接表運算符只對兩個表進行操作,而一條查詢語句可以包含多個聯接。通常,當FROM子句中包含多個表運算符時,表運算符在邏輯上是按從左到右的順序處理的。也就是說,第一個表運算符的結果表將作為第二個表運算符的輸入,第二個表運算符的結果將作為第三個表運算符左邊的輸入,以此類推。

所以如果FROM子句中包含多個聯接,邏輯上只有第一個聯接對兩個基礎表進行操作,而其他聯接則將前一個聯接的結果作為其左邊的輸入。

例如,以下查詢先對Customers表和Orders表進行聯接,以匹配客戶和它們的訂單,再把第一個聯接的結果表和OrderDetails表進行聯接,以匹配訂單和訂單詳情。

SQL查詢代碼:

-- 多表聯接查詢SELECT customers.custid,customers.companyname,orders.orderid,orderdetails.PRoductid,orderdetails.qty FROM Sales.Customers AS customersLEFT JOIN Sales.Orders AS orders ON customers.custid = orders.custidLEFT JOIN Sales.OrderDetails AS orderdetails ON orders.orderid = orderdetails.orderidORDER BY customers.custid;

查詢結果:

image


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 察雅县| 资源县| 连江县| 青河县| 江山市| 信阳市| 怀化市| 玉龙| 望奎县| 惠水县| 凌云县| 彩票| 新和县| 西峡县| 洪湖市| 扶沟县| 新安县| 历史| 雅安市| 名山县| 高清| 临沧市| 金塔县| 南安市| 云龙县| 循化| 沾益县| 瑞金市| 张掖市| 鞍山市| 孟州市| 许昌县| 乡宁县| 白山市| 朝阳区| 桐庐县| 清新县| 石河子市| 抚松县| 黄浦区| 历史|