inner join on 1=1 在查詢中的高級用法


最近在項目中看到一個查詢語句,讓我有興趣去研究、研究。查詢語句如下:

 

  重點分析第二個INNER JOIN  ON 1 = 1 這個語句;內連接表示查詢兩個表的交集,而且ON的條件為 1=1 就表示連接條件永遠成立。

更確切的說就是將第二個INNER JOIN 前面的查詢結果和后面的查詢結果組裝成一個結果進行返回。這就比較有意思了,因為這種查

詢方式可以是兩個完全不同的查詢結果,並且只需要寫一個查詢語句,這在一定程度上提升了效率。以上面的查詢為例trade_name, total

是一個查詢結果;alltotal是另外一個查詢結果,最后將這兩個不同的查詢結果合成為一個結果返回。這樣既滿足了業務的需求,也提高了

效率,所以有需要的時候還是值得借鑒一下。

  如果是常規做法可能會先做一個查詢去查詢trade_name, total和值;然后在做一個查詢去查詢alltotal的值;最后在代碼中進行合並,

將最終的結果返回。比較一下這兩種方式,還是只查詢一次,代碼更加的簡潔,SQL語句的話也很好理解。不過這種查詢方式只適用於

統計查詢,或者是返回結果只有一行的情況。

  說明:添加雙引號是因為Oracle查詢時返回的列全部是大寫的,而對應的實體類中列名是小寫的,因此才添加雙引號將Oracle查詢的

結果變為小寫,這樣才能將結果正確的映射到實體類中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM