我有一张表tv_programs(prog_id,channel_id,prog_name,prog_start_date,prog_end_date)
对于每个频道,我希望在现在播出的节目之后开始下一个节目。所以每个频道一行。
我试过
Select * from tv_programs where prog_start_date > NOW()
这为我提供了从现在开始的所有频道的所有节目。
Thanx求助
答案 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
将返回程序以便为每个频道更快地启动