gpt4 book ai didi

php - 当日期存储在单独的表中时,如何显示与实体关联的最新日期?

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

我有两个表,一个是音乐会列表,每个表都有一个 ID 和一个日期。其他表是歌曲列表和播放歌曲的音乐会 ID。歌曲可能会在该表中多次出现,我希望能够显示每首歌曲的最近播放时间(在列表中)。

音乐会表:

Concert_ID     Date   
-------------------------
c1 1/1/2014
c2 1/2/2014
c3 1/3/2014

歌曲表:

Song_ID    Concert_ID      
-------------------------
s1 c1
s2 c1
s1 c2
s3 c2
s2 c3

期望的结果:

Song_ID    Date      
-------------------------
s1 1/2/2014
s2 1/3/2014
s3 1/2/2014

最佳答案

假设 concerts 表中的 date 列是日期类型,您可以像这样连接两个表:

select s.song_id, max(c.date)
from songs s
inner join concerts c
on s.concert_id = c.concert_id
group by s.song_id;

如果列不是日期类型,请使用 str_to_date(c.date, '%m/%d/%Y') 而不是 c.date


create table concerts(Concert_ID varchar(100), Dt date);
insert into concerts values ('c1',str_to_date('1/1/2014','%m/%d/%Y'));
insert into concerts values ('c2',str_to_date('1/2/2014','%m/%d/%Y'));
insert into concerts values ('c3',str_to_date('1/3/2014','%m/%d/%Y'));

create table songs (Song_ID varchar(100), Concert_ID varchar(100));
insert into songs values ('s1','c1');
insert into songs values ('s2','c1');
insert into songs values ('s1','c2');
insert into songs values ('s3','c2');
insert into songs values ('s2','c3');

select s.song_id, max(c.dt)
from songs s
inner join concerts c
on s.concert_id = c.concert_id
group by s.song_id;

产生:

+---------+------------+
| song_id | max(c.dt) |
+---------+------------+
| s1 | 2014-01-02 |
+---------+------------+
| s2 | 2014-01-03 |
+---------+------------+
| s3 | 2014-01-02 |
+---------+------------+

关于php - 当日期存储在单独的表中时,如何显示与实体关联的最新日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41523962/

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