[SQL ] 查詢語法改進請益

看板Database作者 (看文不要只會用橫的看)時間15年前 (2010/12/28 23:36), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/3 (看更多)
不才最近有個語法,跑下去會要人命(要105s才會傳回結果) (MYSQL 5) 語法如下: SELECT COUNT(StockOfStore.GID) FROM StockOfStore LEFT JOIN Goods ON StockOfStore.GID = Goods.ID WHERE StockOfStore.SID = '$_SESSION[StoreID]' AND Goods.Name !='' AND (SELECT COUNT(Count) FROM OutStockLog WHERE GID = StockOfStore.GID AND SID ='$_SESSION[StoreID]') = 0 我是要查StockOfStore的GID筆數,但是需要結合Goods,並把沒有Name的Goods 濾掉。最後再去另一個資料表取出0出貨的結果。 這語句跑下去大約會是100 Seconds ~ 12X Seconds. 以Web應用來說,這不死人才有鬼。 有前輩能指點一下生路嗎? 感激。 -- 小惡魔的家 http://blog.pixnet.net/shiuju/ -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.124.142.152 ※ 編輯: averywu 來自: 59.124.142.152 (12/28 23:37)

12/29 01:22, , 1F
挑一組輸入帶進去, 然後用 EXPLAIN 把結果貼上來看看
12/29 01:22, 1F

01/23 12:25, , 2F
nested query不是效率不好嗎?
01/23 12:25, 2F
文章代碼(AID): #1D6WG8zM (Database)
文章代碼(AID): #1D6WG8zM (Database)