簡體   English   中英

范圍 SQL 連接類型之間的差異(不等式運算符與 BETWEEN)

[英]Difference between ranging SQL join types (inequality operators vs BETWEEN)

所以我繼承了一些讓我有點不安的 SQL 代碼:

FROM table AS x LEFT JOIN table AS y ON y.date_1 <= x.date AND y.date_2 >= x.date

而且我更習慣於:

FROM table AS x LEFT JOIN table AS y ON x.date BETWEEN y.date_1 AND y.date_2

我沒有看到執行計划有什么不同。 與另一個相比,一個更優選或最優?

在我看來,你是對的,他們沒有差異。 它們僅在您將如何使用Comparison OperatorsBETWEEN方面有所不同。 比較運算符是比較兩個值的關系,而 BETWEEN 是當您想要獲取給定范圍內的值時。

從上面的示例代碼中,BETWEEN 更受青睞,因為它更短且更簡單。

我還在 這里找到了一個已回答的問題。

注意:不等式運算符是!= ,盡管它也包含在比較運算符中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM