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用于连接不同的表
- 2. Windows操作系统的SQL连接字符串是否有所不同?
- 3. 在SQL Server中处理'Enumerations'有哪些不同的方法?
- 4. 原子GETSET操作有哪些用例?
- 5. 原子方式有哪些用途?
- 6. 使用LINQ执行这些操作的方法有哪些?
- 7. 关于如何使用vb.net连接/操作sql server的教程
- 8. SQL两列相同的连接使用不同的值
- 9. 使用不同的值连接SQL中的行
- 10. 在java中使用REST API有哪些不同的用例
- 11. SQL在连接表上的不同值
- 12. 确定哪些用户通过AD组连接SQL
- 13. 如何使用GROUP BY连接SQL Server中的不同列?
- 14. 确定SQL Server中不同连接的连接选项
- 15. 所有这些SQL连接在逻辑上是否相同?
- 16. SQL Server镜像连接不起作用
- 17. SQL查询连接不起作用
- 18. 左外连接SQL不起作用
- 19. T-SQL外部连接不起作用
- 20. sql查询 - 不同的操作
- 21. MongoDB:分片方案中的次要用途有哪些?
- 22. MySQL中有哪些不同的表格?
- 23. 在node.js中使用require()函数有哪些不同的方法?
- 24. 在Windows中使用目录有哪些不同的方法?
- 25. SQL左连接两个不同的表
- 26. SQL左连接不同的正确?
- 27. SQL操作中使用pyodbc和SQL Server
- 28. GWT可用于商业用途的库有哪些影响?
- 29. 这些不同的Android操作系统可以安装在哪些设备上?
- 30. 在HTML中使用jQuery的Sql连接?
为什么世界上有人投票这个问题? – Nix 2010-04-11 13:48:27
嗯。从他们的角度来看,这也许是个好问题? – EvilTeach 2010-04-11 14:24:27