我有一个SQL查询,该查询对两个表分别具有> 50M行的表执行INNER JOIN。我希望通过减少基于其中一个表中存在的列的连接行来减少搜索连接所花费的时间。
假设我的table1包含A,B,C列,而table2包含A,D,E列。我希望基于A列进行联接,但仅对表2的E列具有值“ e”的行进行联接。
我的SQL查询:
SELECT one.B, two.D
FROM table1 one
INNER JOIN table2 two WHERE two.E IN ('e')
ON one.A = two.A
WHERE one.B > 10
AND two.D IN ('...')
它给出了错误:
ORA-00905: missing keyword
我要去哪里错了?我如何达到预期的结果?
SELECT one.B, two.D
FROM table1 one
INNER JOIN table2 two -- WHERE two.E IN ('e') --> shouldn't use where here
ON one.A = two.A and two.E = 'e'
WHERE one.B > 10
AND two.D IN ('...')
注释包含在代码中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句