作者cyclone350 (老子我最神)
看板Database
标题Re: [SQL ] 两个table结合查询语法问题
时间Wed May 29 20:17:23 2013
※ 引述《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
1F:→ cyclone350:补充一下,这个case的效能瓶颈绝对不是在index 05/29 20:18
2F:推 Whynopeople:谢谢指导 受益良多 05/29 20:19
3F:→ a926:我也受教了 :) 05/31 00:56