0

我们有两个表,我想得到结果表(如下)。我们试试这个 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)

但是效率太低(表1和表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|
4

1 回答 1

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
于 2013-05-29T08:22:21.843 回答