2012-07-11 152 views
1

目前,我將VB6轉換爲VB.NET。 轉換後,我想在SQL中插入/選擇 但我需要知道我的sql語句的含義是什麼。SQL * =語句(外連接)

我聲明:

XXX where adj.reasonid *= re.reasonid and (status <> 'A'OR action = 'H') 

有人能知道* =是什麼意思?和

in (status <> 'A'OR action = 'H')是指是否有一個條件可以選擇數據?

+0

對於2nd:是的,如果status不是A或action是H,它會返回數據。這個條件的工作原理如下(1 - true,0 - false)1或1 = 1 | 1或0 = 1 | 0或1 = 1 | 0或0 = 0' – 2012-07-11 04:16:10

+0

非常感謝,我現在明白了=] – user1506228 2012-07-11 06:11:51

回答

2

*=是左外連接的替代(我相信是過時的)語法。

+0

非常感謝你=] – user1506228 2012-07-11 06:14:39

+0

當然可以。隨意投票有用的答案,並接受你認爲是正確的。 – 2012-07-11 06:16:30

1

這是SQL Server中Outer Join的舊語法。

SQL服務器長期以來一直支持兩種形式的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') 

或僅話務員,直到它找到一個真正的結果計算表達式。

+0

非常感謝你,我現在明白了=] – user1506228 2012-07-11 06:13:58