Re: [SQL ] 兩個table結合查詢語法問題

看板Database作者 (老子我最神)時間12年前 (2013/05/29 20:17), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串3/3 (看更多)
※ 引述《Whynopeople (whynopeople)》之銘言: : 各位前輩好, : 最近在整理資料遇上一些語法問題。 : 有兩張資料表table_1及table_2 : 想要的到result_table的結果。 : table 1 : ================= : | CUI | STR | : ----------------- : | 1 | Hi | : ----------------- : | 2 | wow | : ================= : table 2 : ================== : | CUI_1 | CUI_2 | : ------------------ : | 1000 | 1 | : ------------------ : | 2 | 1002 | : ------------------ : | 1 | 2 | : ------------------ : | 2 | 1 | : ================== : 結果: : result_table : ============================= : | CUI_1 | STR | CUI_2 | STR | : ----------------------------- : | 1 | Hi | 2 | wow | : ----------------------------- : | 2 | wow | 1 | Hi | : ============================= : 我們試著下以下條件 : select table2.CUI_1, table1.STR, table2.CUI_1, table.STR : from table1 , table2 : where table2.CUI1 in (select table.cui from table2) : and : table2.CUI2 in (select table1.cui from table1) : 但也許是這樣寫效率太差(table1有6000筆資料,table2有百萬筆資料) : 得不到回應 : 而且我們都覺得這語法似乎達不到預期結果 : 還請版上前輩們可否指導一下 : 謝謝 幾個觀念 1. 如果你的 SQL 有使用到 IN,那麼就會 sort ... sort 就會拖慢時間 2. 可以使用資料庫所提供的工具,例如 Oracle 就有 Explain plan 若要變快的話... 可以直接使用 Inner Join 就好 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.77.195.98

05/29 20:18, , 1F
補充一下,這個case的效能瓶頸絕對不是在index
05/29 20:18, 1F

05/29 20:19, , 2F
謝謝指導 受益良多
05/29 20:19, 2F

05/31 00:56, , 3F
我也受教了 :)
05/31 00:56, 3F
文章代碼(AID): #1HfV7KtL (Database)
文章代碼(AID): #1HfV7KtL (Database)