Sql 需要帮助以某种方式制定查询输出吗
我们有一个包含电视频道列表的表格Sql 需要帮助以某种方式制定查询输出吗,sql,mysql,database,database-design,Sql,Mysql,Database,Database Design,我们有一个包含电视频道列表的表格 create table listing (id, channel_name, event_name, event_time) a) listing (1, "ABC Channel", "All My Children", 6.00 AM) b) listing (2, "ABC Channel", "News", 7 AM) c) listing (3, "ABC Channel", "One life to live", 7.15 AM) d) list
create table listing (id, channel_name, event_name, event_time)
a) listing (1, "ABC Channel", "All My Children", 6.00 AM)
b) listing (2, "ABC Channel", "News", 7 AM)
c) listing (3, "ABC Channel", "One life to live", 7.15 AM)
d) listing (4, "ABC Channel", "General Hospital", 8.00 AM)
e) listing (5, "ABC Channel", "News", 9.00 AM)
f) listing (6, "ABC Channel", "Movie 1", 9.15 AM)
g) listing (7, "ABC Channel", "News", 10.00 AM)
我的网页显示了一个特定的电视频道列表,如下所示:-
event_name event_times
---------------------------------------------
All My Children 6.00 AM
News 7.00 AM, 9.00 AM, 10.00 AM
One life to live 7.15 AM
General Hospital 8.00 AM
Movie 1 9.15 AM
所有新闻计时都合并到一个条目中,目前我正在应用程序层合并条目,是否可以在查询级别执行此操作。尝试以下操作:
SELECT event_name,
GROUP_CONCAT(event_time SEPARATOR ', ' ORDER BY event_time) AS event_times
FROM listing
GROUP BY event_name
ORDER BY event_name
如果您需要将其用于单独的通道,这应该可以:
SELECT event_name,
GROUP_CONCAT(event_time SEPARATOR ', ' ORDER BY event_time) AS event_times
FROM listing
WHERE channel_name = 'ABC Channel'
GROUP BY event_name
ORDER BY event_name
试着这样做:
SELECT event_name,
GROUP_CONCAT(event_time SEPARATOR ', ' ORDER BY event_time) AS event_times
FROM listing
GROUP BY event_name
ORDER BY event_name
如果您需要将其用于单独的通道,这应该可以:
SELECT event_name,
GROUP_CONCAT(event_time SEPARATOR ', ' ORDER BY event_time) AS event_times
FROM listing
WHERE channel_name = 'ABC Channel'
GROUP BY event_name
ORDER BY event_name
可能
UNION
将非新闻与新闻行一起显示。只有新闻需要将其时间连接起来
SELECT event_name,
event_times
FROM (
SELECT
event_name, event_time
FROM listing
WHERE event_name != 'News'
UNION
SELECT event_name, GROUP_CONCAT(event_time SEPARATOR ', ') event_time
FROM listing
WHERE event_name = 'News'
) AS All
ORDER BY event_times ASC
可能
UNION
将非新闻与新闻行一起显示。只有新闻需要将其时间连接起来
SELECT event_name,
event_times
FROM (
SELECT
event_name, event_time
FROM listing
WHERE event_name != 'News'
UNION
SELECT event_name, GROUP_CONCAT(event_time SEPARATOR ', ') event_time
FROM listing
WHERE event_name = 'News'
) AS All
ORDER BY event_times ASC