0

简而言之..

SELECT * 
FROM tbl1 
LEFT OUTER JOIN tbl2 ON tbl1.ID = tbl2.externalRefID 
WHERE tbl1.varref = '12345' OR tbl2.varref = '12345';

对于这些表中的任何数据量,此查询都需要很长时间。然而,我需要第二个外部连接的表,因为它通常不会在 externalRefID 上匹配。为所有引用的列创建的索引但没有区别,因为我需要跨多个表的索引(这可能吗?)

这一定很明显,但我看不到树木的树林......

4

1 回答 1

0

您是否考虑过将查询重构为 UNION 查询?

SELECT *
  FROM tbl1 INNER JOIN tbl2 ON tbl1.id = tbl2.externalRefId
 WHERE tbl2.varref = '12345'
UNION
SELECT *
  FROM tbl1 OUTER JOIN tbl2 ON tbl1.id = tbl2.externalRefId
 WHERE tab.1.varref = '12345'

您也可以在此使用 UNION ALL。

于 2013-04-03T12:05:24.767 回答