Sha*_*n H 58 sql t-sql database sql-server
我正在尝试跟踪Microsoft Server中的一些SQL.我遇到了一个使用我不熟悉的约定的联接." =*"是什么意思?
WHERE table1.yr =* table2.yr -1
Run Code Online (Sandbox Code Playgroud)
OMG*_*ies 71
这个:
WHERE t.column =* s.column
Run Code Online (Sandbox Code Playgroud)
...是旧的TSQL(pre SQL Server 2005)外连接语法,并且不是ANSI JOIN.
Eri*_*lje 25
我相信这是旧语法,表示从table1到table2的外连接条件
老式:
SELECT * FROM table1, table2
WHERE table1.yr =* table2.yr -1
Run Code Online (Sandbox Code Playgroud)
新风格(SQL92):
SELECT * FROM table2
LEFT OUTER JOIN table1 ON table1.yr = table2.yr - 1
Run Code Online (Sandbox Code Playgroud)
mjv*_*mjv 16
这是表达联接的旧样式语法
HLG*_*GEM 11
这意味着代码需要立即更换!这种样式连接应该是一个正确的连接.不幸的是,它有时会被解释为交叉连接,因此使用此连接的结果可能不正确.此外,此语法已弃用,不能用于下一版本的SQl服务器.
这是RIGHT OUTER JOIN的ANSI SQL 1989语法,其中*=将是LEFT OUTER JOIN.
您还应该注意,在SQL 2008中不推荐将连接语法放在WHERE子句中.http://scarydba.wordpress.com/2009/09/15/no-join-predicate/ <==关于此的及时文章.
| 归档时间: |
|
| 查看次数: |
17249 次 |
| 最近记录: |