Одинаковый запрос SQL для каждого элемента массива - PullRequest
1 голос
/ 16 марта 2012

Я пишу запрос для своей базы данных, и в основном я хочу запросить в базе данных события, происходящие в каждой комнате. Это означает, что я хочу найти самое раннее событие, происходящее в комнате 1, и самое раннее событие, происходящее в комнате 2.

Ниже у меня есть код для выполнения этого запроса для 1 комнаты. Этот код возвращает только самое раннее событие в комнате 2. Как я могу выполнить запрос, где я найду самое раннее событие для комнаты 1 и самое раннее событие для комнаты 2 и верну его в одном запросе?

Это будет выполнять запрос для каждого элемента массива, но в одном запросе. Возможно ли это или мне нужно написать запрос для каждой комнаты?

select   name,
         eventtime,
         MIN(eventtime - currenttime) as time_from_test
from     the_table
where    the_table.room = Room1
group by the_table.room
order by time_from_test
limit 1

Заранее спасибо

1 Ответ

3 голосов
/ 16 марта 2012
select   the_table.room,MIN(eventtime) as event_start_time_of_day
from     the_table
group by the_table.room;

Например, если у вас 5 комнат и в каждой комнате по пять событий, тогда этот запрос извлечет минимальное время события и вернет его вам, сгруппировав все события на уровне комнаты.

...