gpt4 book ai didi

mysql - 基于相关子查询、SQL 的连接表

转载 作者:行者123 更新时间:2023-11-29 09:03:11 26 4
gpt4 key购买 nike

我需要连接如下所述的两个表:

Table1:
ID Date Info1
1 1/29/2011 i10
1 1/30/2011 i11


Table2:
ID Date Info2
1 1/31/2011 i2

我想将表 2 中由 ID、月、年标识的记录左连接到表 1 中由相同 ID、月、年标识的记录,但使用最后一个可用记录日期作为连接记录。例如,在上面的数据中,我会将表 2 中的记录连接到表 1 中的第二条记录,因为它们在 ID、月份、年份中匹配,并且表 1 的记录 2 具有最大可用日期(ID、月份、年)组合。正确结果是:

ID Date Info1 Info2

1 1/30/2011 i11 i2

到目前为止我想出的 SQL 代码相当复杂。请建议一些东西。我正在使用 MySQL。

最佳答案

[I want to] ...use the last available record date as the joining record

首先使用派生表解决这个问题。假设ID, Date是唯一的,那么您可以轻松地按ID分组并获取MAX日期。

SELECT
T1.*,
T2.*
FROM Table1 as T1
JOIN (
SELECT
ID, MAX(Date) as Date
FROM Table1
GROUP BY
ID
) as Last ON
T1.ID = Last.ID
AND T1.Date = Last.Date
LEFT OUTER JOIN Table2 as T2 ON
T1.ID = Last.ID
AND MONTH(T1.Date) = MONTH(T2.Date)
AND YEAR(T1.Date) = YEAR(T2.Date)

关于mysql - 基于相关子查询、SQL 的连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7922488/

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