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