我阅读了一些关于这个主题的文章,包括:Use of GROUP BY twice in MySQL,知道这应该是我需要的相同逻辑,但我不知道如何应用它。使用max和group的两倍
请注意,我知道模式是可怕的(我仍然不明白为什么版本和发布的表是分开的,例如...),但我没有任何权力来改变它。
(我有我有,所以我会用使用的电影,而不是一个示例模型我的问题,工作的一些敏感信息。)
Tables:
Title
TitleID MovieTitle
1 Great Movie #1
2 Great Movie #2
Edition
StockNo editionID EditionText Media TitleID
1 1 Regular Edition DVD 1
2 1 Regular Edition Blue-ray 1
3 2 Extended Version DVD 1
4 2 Extended Version Blue-ray 1
5 1 Regular Edition DVD 2
6 1 Regular Edition Blue-ray 2
7 2 Extended Version DVD 2
8 2 Extended Version Blue-ray 2
Published
StockNo DatePublished
1 1999.01.01
2 2003.01.01
3 2000.01.01
4 1999.01.01
5 1997.01.01
6 1998.01.01
7 2012.01.01
8 2009.01.01
我想与每一行是一个的版本返回行标题。无论媒体如何,我都希望返回最新发布的日期。
如:
重大举措#1,普通版,Latest_published_date
大电影#1,扩展版本,Latest_published_date
重大举措#2,普通版,Latest_published_date
大电影#2,扩展版本,最新_published_date
我只是迷失在一片逻辑之中......。
WITH Datespublished AS
( Select tt.titleid
,ed.editionID
,pb.datepublished
FROM title tt
left join edition ed on tt.titleid=ed.titleid
left join published pb on pb.stockno=ed.stockno
)
select titleid, editionID, max (datepublished) as maxdate from Datespublished group by titleid THEN editionID?!?!?!?
完美!你救了我几个小时的痛苦,并教我新的东西!我不能够感谢你! (有时候我们认为一个问题需要一个复杂的解决方案,但实际上只需要一个相对简单的解决方案,但我们必须寻找它才能看到它!) – Sarah