SQL *= 语句(外连接)
Posted
技术标签:
【中文标题】SQL *= 语句(外连接)【英文标题】:SQL *= statement (outer join) 【发布时间】:2012-07-10 15:26:13 【问题描述】:目前,我正在将 VB6 转换为 VB.NET。 转换后,我想在 SQL 中插入/选择 但我需要知道我的sql语句是什么意思。
我的声明:
XXX where adj.reasonid *= re.reasonid and (status <> 'A'OR action = 'H')
有人知道 *= 是什么意思吗?和
in (status <> 'A'OR action = 'H')
是否意味着任一条件都可以选择数据?
【问题讨论】:
对于第二个:是的,如果status
不是 A 或 action
是 H,它将返回数据。此条件的工作原理如下,(1 - true, 0 - false) 1 or 1 = 1 | 1 or 0 = 1 | 0 or 1 = 1| 0 or 0 = 0
跨度>
非常感谢,我现在明白了=]
【参考方案1】:
*=
是左外连接的替代(我相信已过时)语法。
【讨论】:
当然可以。随意对有用的答案进行投票,并接受您认为正确的答案。【参考方案2】:这是 sql server 中 Outer Join
的旧语法。
SQL Server 早就支持OUTER JOIN syntax
的两种形式,
ANSI syntax (using LEFT OUTER JOIN, RIGHT OUTER JOIN
等),
以及简化的T-SQL syntax (using
= 和 =).
http://www.forta.com/blog/index.cfm/2006/1/15/SQL-Server-2005-Outer-Join-Gotcha
在您的代码中。
where adj.reasonid Left Outer Join re.reasonid
and (status <> 'A' OR action = 'H')
为了。
in (status <> 'A'OR action = 'H')
OR 运算符只计算表达式,直到找到 TRUE 结果。
【讨论】:
以上是关于SQL *= 语句(外连接)的主要内容,如果未能解决你的问题,请参考以下文章
Hive sql中的 各种join(内连接左外连接右外连接满外连接)
Hive sql中的 各种join(内连接左外连接右外连接满外连接)
Hive sql中的 各种join(内连接左外连接右外连接满外连接)