SQL查询理论问题

Ken*_*eng 5 sql sql-server query-tuning

我有一个大的历史交易表(15-20万行MANY列)和一行一列一列.具有一行的表包含日期(最后处理日期),该日期将用于提取trasaction表中的数据('process_date').

问题:我应该将'process_date'表连接到事务表,还是将事务表连接到'process_date'表?

SQL*_*ace 6

我就是这样做的

SELECT <<list only columns you need>> 
FROM large_historical_transaction_table t
WHERE EXISTS (SELECT 1 FROM OneRowTable o 
              WHERE o.last_processing_date = t.process_date)
Run Code Online (Sandbox Code Playgroud)

  • @mdma:只有一行,实际上可能没有区别.不过,当你实际上并不需要一个真正的"JOIN"时,养成使用"IN"或"EXISTS"的习惯是很好的 - 通常(但并非总是)它会导致更有效的计划.特别是,我们应该说,*具有不同能力的*DBMS,如mysql. (2认同)