Re: [SQL ] 多次LEFT JOIN的效能

看板Database作者 (力比恩)時間8年前 (2015/09/11 00:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
不太確定你是ASP還是.NET,不過我用.NET大概示範好了, 我沒寫過ASP.... Dictionary<sting, string> KeyCode = new Dictionary<string, string>(); var KeyList = db.CodeTable.toList(); //EF foreach(var item in KeyList) { KeyList.Add(item.key.ToString(),item.name.ToString()); } 不太確定你的Data Source 看你的error 是走ODBC.. 那可能是ADO? 不管怎麼樣你可以再讀資料的時候加上轉換, var 採購單List = DataSourec.toList(); foreach(var item in 採購單List) { 料件名稱 = KeyList.ContainsKey(item.料件代號) ? KeyList[item.料件代號] : item.料件代號; (如果是ADO的話我猜可能是item["欄位名稱"]) ..... } 不太確定你的資料量到底多大,不過已訂單來說要破百萬應該是有難度, 但是就是算百萬級資料也不至於會當,可能要調整一下索引, 不然就是把資料篩選完後再做Left Join,降低運算量。 ※ 引述《ryrp (RyRp)》之銘言: : 請教一下各位高手 : 如果我有一個table 是存放代號 其他的table存放代號資料 : 我用left join去抓代號資料 這樣的寫法正確嗎 : ex:採購單上 有廠商代號、料件代號、倉庫代號 : 我再用left join 去存放這三個資料的table抓資料 : select B.廠商資料,C.料件資料,D.倉庫資料 from : ((採購單 as A left join 廠商單 as B on A.廠商代號=B.廠商代號 ) : left join 料件單 as C on A.料件代號=C.料件代號) : left join 倉庫單 as D on A.代號代號=D.倉庫代號 : 用這種方式抓到第三個LEFT JOIN還可以 : 但第四個我的ASP就跑很久當掉了 : 不知道我的語法需要修正哪些地方 : 非常感謝各位的閱讀~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.218.22.213 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1441901396.A.AAB.html
文章代碼(AID): #1LyQjKgh (Database)
文章代碼(AID): #1LyQjKgh (Database)