看板 Database 關於我們 聯絡資訊
※ 引述《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
cyclone350:補充一下,這個case的效能瓶頸絕對不是在index 05/29 20:18
Whynopeople:謝謝指導 受益良多 05/29 20:19
a926:我也受教了 :) 05/31 00:56