MySQL中使用LEFT JOIN遇到乙個問題,沒想通為什麼。請各位幫忙分析一下?

時間 2021-06-06 00:18:53

1樓:宋運奎

沒有結果的原因:T2的結果集(SELECT CREATE_TIME,SUM(BILL_WEIGHT) FROM BILL) 的這個寫法是有問題的,MySQL低版本伺服器引數可以設定弱校驗,就是說語法校驗不是特別嚴格,即使這樣寫她也不會報錯(同樣的寫法Oracle就會報語法錯誤了)會隨機取乙個時間然後乙個sum合計值(時間可能是最小的時間值,而不是2020-01-01可以單獨執行下T2的結果看看),

這樣的話where又限制了2020-01-01所以結果是空的。

另外這個語句還有較大的優化調整空間(^_^)1.(>=和<= 同乙個時間,就是等於這個時間了,或者是用between效率會更高)

2.T2的結果集確定是取全部*嗎?

3.date_format函式直接用在查詢欄位上,如果欄位不建立函式索引,即使字段建立了索引也不會用到索引,查詢會慢的。

如上(^_^)

2樓:Chuang Jiang

T1表2021-01-01這天有資料嗎?DATE_FORMAT(T1.CREATE_TIME,'%Y-%m-%d') >='2021-01-01' ANDDATE_FORMAT(T1.

CREATE_TIME,'%Y-%m-%d') <='2021-01-01'

不就意味著只查詢元旦這一天的資料

3樓:資料愛好者記

返回的結果要滿足where後面的條件, where條件有T2.create_time,按你說的如果T2表為空,那結果就是空,和連線方向沒有關係。你可以嘗試把where條件刪掉試試

另外感覺你的語句應該有很大的優化空間......

PHP中使用pdo鏈結mysql,如果在同乙個指令碼中,多次使用同樣的引數建立連線,是會進行多次連線還是會像mysql connect 一樣在預設情況下只連線一次?

Litrin 預設為短連線 官方文件中PDO Connections and Connection management 部分給出的例項 Example 4 Persistent connections php dbh new PDO mysql host localhost dbname test...

Go中,使用runtime Gosched,time Sleep哪個效能更好?

成雋 sleep不精確啊。https 這個bug已經留了2個大版本還沒解決。 假裝懂程式設計 從cpu利用率來說runtime.Gosched應該更好吧,都是讓出cpu,runtime.Gosched讓出後,後續交給go本身的runtime去排程,不需要像sleep那樣自己定義time,runtim...

makefile 中使用 gcc,make編譯之後在終端得到cc

qin meng makefile裡有隱含規則和顯式規則兩種,顯式規則就是我們通常寫的這種,隱含規則就是make對於各種檔案的隱含編譯編譯規則,對於 c檔案它的隱含規則是這樣的 o c CC CFLAGS CPPFLAGS c o 除了 c還有 cc C p l y等等許多語言檔案的隱含推導規則,詳...