gpt4 book ai didi

php - 为什么这个查询没有正确显示与最早日期相关的记录?

转载 作者:行者123 更新时间:2023-11-28 23:21:11 24 4
gpt4 key购买 nike

我的问题是我不断添加不同日期的行,因此表格中歌曲的第一个条目不一定是最早出现的,这正是我想要显示的。

已玩表:

song_name        played_id        show_id
-------------------------------------------
A Song 0001 000a
Another Song 0002 000a
A Song 0003 000b

显示表:

show_id          date
-------------------------------------------
000a 2/2/2012
000b 1/1/2011

期望的结果:

song_name        played_id         date
-------------------------------------------
A Song 0003 1/1/2011
Another Song 0002 2/2/2012

当前令人沮丧的结果:

song_name         played_id        date
-------------------------------------------
A Song 0001 2/2/2012
Another Song 0002 2/2/2012

来自这个查询:

SELECT p.song_id, s.date AS date, p.song_name, p.show_id, p.set_order, p.played_id
FROM played p
INNER JOIN shows s
ON p.show_id = s.show_id
GROUP BY p.song_id
ORDER BY s.date ASC

当我将 LIMIT 1 添加到上述查询时,我的结果不会显示离散歌曲名称的列表,而是只显示一行。

我假设我可能需要使用子查询,因为 GROUP BY 会在 ORDER BY 有机会查看所有日期之前选择每首歌曲的第一次出现,但我不确定。在此先感谢您的帮助!

最佳答案

试试这个:

SELECT 
p.song_id,
s.date,
p.song_name,
p.show_id,
p.set_order,
p.played_id
FROM
played p
INNER JOIN
shows s ON p.show_id = s.show_id
INNER JOIN
(SELECT
p.song_id, MIN(s.date) DATE
FROM
played p
INNER JOIN shows s ON p.show_id = s.show_id
GROUP BY p.song_id) x ON p.song_id = x.song_id
AND s.date = x.date;

它找到每个 song_id 的最早日期,然后将结果与主连接连接以找到所需的结果。

关于php - 为什么这个查询没有正确显示与最早日期相关的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41529914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com