2015-12-17 2 views
-1

У меня есть таблица «Сообщения». Каждое сообщение имеет отметку времени. Есть ли способ SQL спросить следующее?Как я могу представить этот запрос в одной строке sql?

«Выбрать все сообщения из таблицы сообщений ТОЛЬКО, если один или несколько из них старше десяти минут»

если т.е. сообщений не старше десяти минут я не хочу никаких результатов. Если кто-то старше десяти минут, я хочу получить все результаты.

Это, если возможно, в одном запросе?

Спасибо!

+1

Какие СУБД вы используете? (Многие из них далеки от соответствия ANSI SQL, когда дело доходит до даты/времени.) – jarlh

ответ

0

Используйте EXISTS, чтобы увидеть, если есть такая строка старше 10 минут:

select * from messages 
where exists (select 1 from messages where localtimestamp - timestamp > 10) 

Расчет метки времени различается в зависимости от СУБД, так что вы должны настроить эту часть.

0

автообъединение с EXISTS

SELECT * FROM messages a 
WHERE EXISTS (SELECT 1 FROM messages b WHERE a.timestamp - b.timestamp > 10) 
Смежные вопросы