结合两个大数据表

时间:2013-05-29 08:16:55

标签: mysql

我们有两个表,我想得到结果表(如下)。我们尝试这个SQL ......

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和表2包含数百万条记录),并且可能无法正确响应。 SQL适合此请求的内容是什么? 非常感谢

table1:  
|CUI|STR|  
|1  | Hi|  
|2  | Ho|  

table2:  
|CUI_1|CUI_2|  
|100  |    1|  
|102  |    2|  
|1    |    2|  

result_table  
|CUI_1|STR|CUI_2|STR|  
|1    | Hi|    2| Ho|

1 个答案:

答案 0 :(得分:1)

尝试使用JOIN比使用2个子查询更有效:

SELECT
    t2.CUI_1,
    t11.STR,
    t2.CUI_2,
    t12.STR
FROM 
    table2 t2
INNER JOIN table1 t11
    ON t11.CUI = t2.CUI_1
INNER JOIN table1 t12
    ON t12.CUI = t2.CUI_2