我在我的范围内编写 mysql 查询以获得结果时遇到了一些问题。实际上我使用这个现有的查询得到了适当的结果,但它不是以适当的方式编写的。这是我的查询:
SELECT c.ID, c.chn_name,c.chn_logo,
(SELECT ID FROM tv_showtime WHERE showtime<='2013-02-18 10:28:35' AND status='Enable' AND chn_id=c.ID ORDER BY ID DESC Limit 0,1) as currentshowid,
(SELECT tv_showtime FROM tv_showtime WHERE showtime<='2013-02-18 10:28:35' AND status='Enable' AND chn_id=c.ID ORDER BY ID DESC Limit 0,1) as currentshowtime ,
(SELECT tv_showtime FROM tv_showtime WHERE showtime >'2013-02-18 10:28:35' AND status='Enable' AND chn_id=c.ID ORDER BY ID ASC Limit 0,1) as nextshowtime
FROM tv_channels AS c
WHERE c.status="Enable"
ORDER BY c.chn_name
LIMIT 0,10
在这里,只有两个名为“tv_channels”和“tv_showtime”的表。我一次需要每个频道的一个记录(当前时间)。所以这里假设每个频道有 12 个频道和大约 30 个(每个频道可能不同)记录,我只需要显示当前节目的频道(更多说明:只显示具有当前节目时间和/或下一个节目时间的频道。 )
问题:我需要更多来自“tv_showtime”的字段值来显示其他所需的值。如果我要使用这种方式,那么我必须编写更多的内部选择查询,它会减慢我的网站加载速度。那么您能否建议或建议任何其他方式来编写此查询?
数据库表详细信息:
- tv_channels [ID, chn_name, [其他必填字段]],
- tv_showtime [ID, chn_id, showtime, show_name, hits, last_ip [以及更多字段]]
如果您需要更多详细信息来获得此问题,请告诉我。任何帮助或建议将不胜感激。谢谢。