SQL Server的Inner Join及Outer Join(2)_Mssql數(shù)據(jù)庫(kù)教程
推薦:深入淺出SQL之左連接、右連接和全連接內(nèi)連接僅選出兩張表中互相匹配的記錄.因此,這會(huì)導(dǎo)致有時(shí)我們需要的記錄沒(méi)有包含進(jìn)來(lái)。 為更好的理解這個(gè)概念,我們介紹兩個(gè)表作演示。蘇格蘭議會(huì)中的政黨表(party)和議員表(msp)。 party(
接下來(lái)刪除 FK_Products_Suppliers 這個(gè) Foreign Key
Alter Table Products
Drop Constraint FK_Products_Suppliers
再來(lái)新增一筆紀(jì)錄于 Products 資料表, SupplierId 使用 50 是因?yàn)樗](méi)有對(duì)映到 Suppliers 資料表中的記錄
Insert Into Products (ProductName,SupplierId,CategoryId)
values ('Test Product','50','1')
現(xiàn)在我們?cè)賵?zhí)行頭前的查詢(xún), 只是將 Inner Join 改為 Left Outer Join
Select ProductId, ProductName, Suppliers.SupplierId
From Products
Left Outer Join Suppliers
Products.Suppliers = Suppliers.SupplierId
比較一下兩種 Join 方式的查詢(xún)結(jié)果, 你應(yīng)該就會(huì)知影其中的差別!
再來(lái)看看 Right Outer Join, 請(qǐng)新增下底這筆記錄
Insert Into Suppliers (CompanyName)
values ('LearnASP')
現(xiàn)在請(qǐng)使用 Right Out Join 來(lái)作查詢(xún), 比較看看查詢(xún)的結(jié)果和 Inner Join 有什么不同!
尋找不相符紀(jì)錄
這里我們來(lái)看看如何使用 Out Join 來(lái)找不相符紀(jì)錄, 可能是有子紀(jì)錄卻沒(méi)有父紀(jì)錄或是顛倒過(guò)來(lái)
Select Suppliers.CompanyName From Products
Right Join Suppliers
On Products.SupplierId = Suppliers.SupplierId
Where Products.SupplierId is Null
執(zhí)行結(jié)果你會(huì)找到一筆資料為 LearnASP, 該筆供貨商資料存在, 但基本上已經(jīng)沒(méi)有產(chǎn)品是來(lái)自這個(gè)供貨商, 想象一下如果不用 Outer Join 你要怎么以一個(gè) SQL 指令完成同一查詢(xún)結(jié)果! 知道 Outer Join 的好用了吧! 再執(zhí)行
Select Products.ProductName
From Products
Left Join Suppliers
On Products.SupplierId = Suppliers.SupplierId
Where Suppliers.SupplierId is Null
這個(gè)查詢(xún)結(jié)果你會(huì)發(fā)現(xiàn) Test Product 這項(xiàng)產(chǎn)品竟然找不到供貨商的資料!
分享:無(wú)法在 SQL Server 2005 Manger Studio 中錄入中文的問(wèn)題表現(xiàn): 在 SQL Server 2005 Manger Studio中打開(kāi)表,無(wú)法輸入中文,只能輸入英文 問(wèn)題重現(xiàn): 1. 我們建立如下三個(gè)測(cè)試表: CREATE TABLE ta( id int IDENTITY,
- sql 語(yǔ)句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無(wú)法查看數(shù)據(jù)庫(kù),提示 無(wú)法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類(lèi)似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過(guò)程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫(kù)教程推薦
- 詳解Microsoft SQL Server數(shù)據(jù)庫(kù)開(kāi)發(fā)問(wèn)題
- SqlServer2005 數(shù)據(jù)庫(kù)同步配置圖文詳解
- 談SQL Data Services將成為云中完整的數(shù)據(jù)庫(kù)
- 解析SQL觸發(fā)器在保持?jǐn)?shù)據(jù)庫(kù)完整性中的實(shí)際應(yīng)用
- 三個(gè)影響SQL Server性能的關(guān)鍵
- 解讀在SQL Server中處理空值時(shí)涉及的三個(gè)問(wèn)題
- 看Sql server 2005 找出子表樹(shù)
- 揭秘八個(gè)有用的WordPress的SQL語(yǔ)句
- sql2008評(píng)估期已過(guò)的解決辦法及序列號(hào)
- 安裝sqlserver2000時(shí)出現(xiàn)wowexec.exe無(wú)反應(yīng)的解決方法
猜你也喜歡看這些
- MySQL多表之間字段的匹配實(shí)現(xiàn)代碼
- 基于unique與primary約束的區(qū)別分析
- MySQL數(shù)據(jù)庫(kù)INSERT、UPDATE、DELETE以及REPLACE語(yǔ)句的用法詳解
- 解析MYSQL 數(shù)據(jù)庫(kù)導(dǎo)入SQL 文件出現(xiàn)亂碼的問(wèn)題
- MySQL為什么會(huì)索引失效?
- 解決MYSQL出現(xiàn)Can''t create/write to file ''#sql_5c0_0.MYD''的問(wèn)題
- Mysql查看版本號(hào)的五種方式介紹
- Mysql select in 按id排序?qū)崿F(xiàn)方法
- MySQL筆記之基本查詢(xún)的應(yīng)用詳解
- mysql錯(cuò)誤及解決全攻略
- 相關(guān)鏈接:
- 教程說(shuō)明:
Mssql數(shù)據(jù)庫(kù)教程-SQL Server的Inner Join及Outer Join(2)
。