选择唯一的下一个活动

时间:2012-04-06 09:39:21

标签: mysql mysqli

我有一张表tv_programs(prog_id,channel_id,prog_name,prog_start_date,prog_end_date)

对于每个频道,我希望在现在播出的节目之后开始下一个节目。所以每个频道一行。

我试过

Select * from tv_programs where prog_start_date > NOW()

这为我提供了从现在开始的所有频道的所有节目。

Thanx求助

2 个答案:

答案 0 :(得分:0)

SELECT * 
FROM tv_programs 
WHERE prog_start_date > NOW() 
GROUP BY channel_id            # for each channel
ORDER BY prog_start_date ASC   # order by this channel's start time

有什么好处吗?

答案 1 :(得分:0)

你必须GROUP BY channel_id

所以最终查询:

SELECT * 
FROM tv_programs 
WHERE prog_start_date > NOW() 
GROUP BY channel_id
ORDER BY prog_start_date ASC

将返回程序以便为每个频道更快地启动