做左連接的符號(如* =)是什麼? 我有表A和B,即使表B中沒有記錄,也必須始終返回表A的所有記錄。T-SQL左連接符號
0
A
回答
3
您不應該使用該運算符,因爲它的was deprecated in Sql Server 2008,並且將在未來的版本。
您應該使用符合ANSI標準的LEFT JOIN
或LEFT OUTER JOIN
。
它被棄用的原因。該運算符的語法很混亂(它與許多語言的「multiply and assign」的標準超載相沖突)並且是非標準的。
5
這是新的ansi標準語法,更加清晰imo。
SELECT *
FROM A
LEFT OUTER JOIN B
ON A.ID = B.ID
0
避免任何古老的語法。重寫它包括新的 「LEFT OUTER JOIN」 和/或 「RIGHT OUTER JOIN」 語法:
SELECT
a.*, B.*
FROM TableA a
LEFT OUTER JOIN TableB b ON a.id=b.id
Difference between * = and LEFT Outer Join
從鏈接:
在早期版本的Microsoft®SQL 的SERVERT 2000,左右外部 連接條件被指定在 WHERE子句中使用
*=
和=*
運算符。在某些情況下,該語法 會導致模糊的查詢,可能會以多種方式解釋該查詢。 符合SQL-92的外連接在FROM子句中指定的 ,並且執行 不會導致此歧義。因爲 SQL-92語法更加精確,因此 舊版Transact-SQL外連接語法中使用的 WHERE子句不包括在 此發行版中。未來版本的SQL 服務器支持的語法可能不是 。使用 Transact-SQL外的任何語句聯接應 改爲使用SQL-92語法
0
除此之外的是,使用ANSI標準語法LEFT [OUTER] JOIN的用於連接簡化了查找錯誤很多,相信我。 它還允許在WHERE子句中的過濾器和連接操作數之間有更明確的區分。 我會建議也使用ANSI語法進行內部連接。
相關問題
- 1. Linq - 帶點符號的左外連接
- 2. SQL:左連接左連接結果左連接左連接/右連接
- 3. 左連接字符+連接值
- 4. TSQL刪除連接字符串中的最後一個逗號
- 5. 左連接字符串
- 6. TSQL連接參數
- 7. 將左連接轉換爲左連接
- 8. TSQL - 將兩個虛擬表與左外部連接相結合
- 9. LINQ左連接與分組並具有轉換這個TSQL
- 10. TSQL - 唯一地左連接表的不同行
- 11. TSQL:增加一個選擇到左外連接
- 12. TSQL左連接:無論匹配顯示結果
- 13. 右連接與左連接
- 14. 左連接和右連接
- 15. 雙左連接
- 16. Lambda左連接
- 17. GreenDAO左連接
- 18. 或左連接
- 19. Qcubed左連接
- 20. 左連接表
- 21. TSql xml query連接值
- 22. FreeTDS-tsql連接,isql失敗
- 23. tsql內部合併連接
- 24. 多列的TSQL連接
- 25. 左連接上的內部連接使左連接表現爲內連接
- 26. 符號連接的MAC
- 27. 連接數和符號
- 28. 符號連接的Windows
- 29. 使用符號連接
- 30. 連接(的QObject *,信號(信號()),算符)不QT5連接