2012-03-16 76 views
1

我正在为我的数据库编写查询,基本上我想查询数据库以查看每个房间发生的事件。这意味着我想要查找发生在房间1中的最早事件,并在房间2中发生最早事件。每个数组元素上的相同SQL查询

下面我有执行此查询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 

在此先感谢

+0

你的分组按列r与select子句不匹配... – Teja 2012-03-16 19:34:36

回答

3
select the_table.room,MIN(eventtime) as event_start_time_of_day 
from  the_table 
group by the_table.room; 

对于如。如果你有5个房间,每个房间有5个事件时间,那么这个查询将检索最小事件时间,并通过将所有事件分组到房间级别来返回给你。

+0

为了获得更多的信息(比如the_table.name),你可以再次回到the_table,我想。 – Dave 2012-03-16 19:41:26

+0

是的..为获取其他信息,我可以加入同一张桌子上的房间,并得到它... – Teja 2012-03-16 19:42:14

+0

嗨Venk,如果我从另一个表中获取房间?我如何从我从另一个表中选择的房间中查找当前表格中的最早事件? 基本上,我在另一个表中找到房间并使用当前表作为事件的查找表 – maknelly 2012-03-16 20:41:00

相关问题