[英]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 Operators
和BETWEEN
方面有所不同。 比較運算符是比較兩個值的關系,而 BETWEEN 是當您想要獲取給定范圍內的值時。
從上面的示例代碼中,BETWEEN 更受青睞,因為它更短且更簡單。
我還在 這里找到了一個已回答的問題。
注意:不等式運算符是!=
,盡管它也包含在比較運算符中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.