sql中不同連接操作的用途是什麼?就像我想知道爲什麼我們需要不同的內部和外部連接?sql中的不同連接操作的用途有哪些在sql中使用不同的連接操作有哪些用途?sql
回答
唯一加入你的類型真的需要的是LEFT OUTER JOIN
。每個其他類型的連接都可以根據一個或多個左外連接重寫,並且可能會進行一些篩選。那麼爲什麼我們需要所有其他人?這只是爲了混淆人們嗎?如果只有一種類型的連接,會不會更簡單?
您還可以問:爲什麼要同時使用a <= b
和b >= a
?不要這些做同樣的事情嗎?我們不能擺脫其中之一嗎?這將簡化事情!
有時候將<=
換成>=
比替換交換參數更容易。同樣,只有交換操作數時,左連接和右連接纔是同樣的事情。但是,再次選擇這兩個選項是實用的,而不是要求用戶按特定順序編寫查詢。
你可以要求另一件事是:在邏輯爲什麼我們AND
,OR
,NOT
,XOR
,NAND
,NOR
等?所有這些都可以根據NAND
s來重寫!爲什麼不只是有NAND
?那麼它的awkward根據NAND
s寫出OR
,並且它的意圖不是很明顯 - 如果你寫OR
,人們立即知道你的意思。如果你寫了一大堆NAND
,你試圖達到的目標並不明顯。
同樣,如果您想要做a FULL OUTER JOIN b
您可以進行左連接和右連接,刪除重複的結果,然後合併所有。但這是一個痛苦,所以它有一個速記。
你什麼時候使用每一個?這是一個簡化的規則:
- 如果您總是希望左表中每行的結果行使用LEFT OUTER JOIN。
- 如果您始終需要RIGHT表中每行的結果行,請使用RIGHT OUTER JOIN。
- 如果您始終需要任一表中每行的結果行,請使用FULL OUTER JOIN。
- 如果只在兩個表中有一行時只需要結果行,請使用INNER JOIN。
- 如果您想要所有可能的行對,每個表中有一行,請使用CROSS JOIN。
這個環節應該清除所有你加入相關的疑惑:
http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
我使用本教程來理解在發佈之前的連接操作。我的問題是爲什麼我們需要這麼多不同的連接操作?何時使用哪個連接操作? – varunthacker 2010-04-11 13:33:24
inner join
- 從兩套基於指定的條件匹配的聯接行。
outer join
- 選擇一個集合中的所有集合,以及來自另一個集合的匹配或空(如果不匹配)元素。外連接可以是left
或right
,以指定哪個集合完整返回。
爲了使其他答案更清晰 - 例如,當您加入的列包含空值時,您可以根據所選聯接獲得不同結果。
因此 - 對於每個真實場景都有一個適合它的連接(要麼是沒有數據的行,要麼是空值示例中的連接)。
我的回答假設2個表連接上的一個鍵:
INNER JOIN
- 得到的結果是在都連接表(根據聯接規則)FULL OUTER JOIN
- 得到的所有結果這兩個表(笛卡爾乘積)LEFT OUTER JOIN
- 讓所有來自左表的結果和匹配結果從右側
您可以添加WHERE
子句以進一步限制結果。
使用這些爲了只得到你想要的得到。
- 1. 在SQL Server中處理'Enumerations'有哪些不同的方法?
- 2. lua中的表格不足 - 有哪些實際用途?
- 3. SQL用於連接不同的表
- 4. Windows操作系統的SQL連接字符串是否有所不同?
- 5. 原子GETSET操作有哪些用例?
- 6. 原子方式有哪些用途?
- 7. 使用LINQ執行這些操作的方法有哪些?
- 8. 哪些連接操作用於將幾個表與JPA/SQL查詢結合使用?
- 9. SQL連接到不同表
- 10. 關於如何使用vb.net連接/操作sql server的教程
- 11. Transact SQL - 要使用哪個連接
- 12. SQL兩列相同的連接使用不同的值
- 13. 使用不同的值連接SQL中的行
- 14. 在java中使用REST API有哪些不同的用例
- 15. SQL在連接表上的不同值
- 16. SQL更新內部連接在SQL Server中不起作用?
- 17. 確定哪些用戶通過AD組連接SQL
- 18. 如何使用GROUP BY連接SQL Server中的不同列?
- 19. 確定SQL Server中不同連接的連接選項
- 20. 所有這些SQL連接在邏輯上是否相同?
- 21. SQL連接不工作
- 22. MongoDB:分片方案中的次要用途有哪些?
- 23. IIS7連接到SQL 2008不起作用
- 24. T-SQL外部連接不起作用
- 25. 左外連接SQL不起作用
- 26. SQL查詢連接不起作用
- 27. SQL Server鏡像連接不起作用
- 28. sql查詢 - 不同的操作
- 29. SQL - 如何查找使用所有最大併發連接的操作
- 30. MySQL中有哪些不同的表格?
爲什麼世界上有人投票這個問題? – Nix 2010-04-11 13:48:27
嗯。從他們的角度來看,這也許是個好問題? – EvilTeach 2010-04-11 14:24:27