2012-04-06 57 views
0

我有一個表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

你必須GROUP BY channel_id

所以最終的查詢:

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

將返回程序啓動越早每個通道

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 

有什麼好?

+0

這樣只會給一個項目,每通道不是一個項目 – 2012-04-06 09:42:47

+0

在完成抱歉之前,我保存了我的答案..還好嗎? – ale 2012-04-06 09:44:25

+0

如果您限制爲一個,它會返回一行還是每行一行? – msonsona 2012-04-06 09:45:06