2014-01-30 6 views
1

Мне было интересно, можно ли переписать следующий запрос, чтобы первое предложение where создало подмножество большой таблицы, которое можно было бы присоединить к маленькой таблице и далее отфильтровать.Запрос на вступление с эффективным объединением

SELECT * 
FROM big_table x 
JOIN small_table y 
ON trim(x.ip_adress) = trim(y.ip_address) 
WHERE eventdate = '2013-09-01' 
AND unix_timestamp(cast(x.date AS TIMESTAMP)) - unix_timestamp(cast(y.date AS TIMESTAMP)) < 100 LIMIT 5 ; 

ответ

1
SELECT * 
FROM (SELECT * 
     FROM big_table 
     WHERE eventdate = '2013-09-01') x 
JOIN small_table y ON trim(x.ip_adress) = trim(y.ip_address) AND 
         unix_timestamp(cast(x.date AS TIMESTAMP)) - 
          unix_timestamp(cast(y.date AS TIMESTAMP)) < 100 
LIMIT 5; 
+0

Благодаря Фабьен, это именно то, что я искал. – Istvan

Смежные вопросы