0

我有一个表 tv_programs(prog_id、channel_id、prog_name、prog_start_date、prog_end_date)

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

我试过了

Select * from tv_programs where prog_start_date > NOW()

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

4

2 回答 2

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

有什么好处吗?

于 2012-04-06T09:40:54.340 回答
0

你必须GROUP BY channel_id

所以最后的查询:

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

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

于 2012-04-06T09:41:31.720 回答