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 &lt;&gt; '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 *= 语句(外连接)的主要内容,如果未能解决你的问题,请参考以下文章

oracle的SQL语句中的(+) 左外连接

Hive sql中的 各种join(内连接左外连接右外连接满外连接)

Hive sql中的 各种join(内连接左外连接右外连接满外连接)

Hive sql中的 各种join(内连接左外连接右外连接满外连接)

Hive sql中的 各种join(内连接左外连接右外连接满外连接)

sql中的内连接和外连接