[英]Join Tables Based on Correlated Subquery, SQL
我需要加入兩個如下所述的表:
Table1:
ID Date Info1
1 1/29/2011 i10
1 1/30/2011 i11
Table2:
ID Date Info2
1 1/31/2011 i2
我想將ID,月,年確定的表2中的記錄加入表1中由相同ID,月,年標識的記錄,但使用最后一個可用記錄日期作為加入記錄。 因此,例如,在上面的數據中,我將表2中的記錄加入表1中的第二條記錄,因為它們在ID,月,年和表1的記錄2中匹配具有最大的可用日期(ID,月,年)組合。 正確的結果是:
ID日期Info1 Info2
1 1/30/2011 i11 i2
到目前為止我提出的SQL代碼非常復雜。 請提出建議。 我正在使用MySQL。
[我想] ...使用最后一個可用的記錄日期作為加入記錄
首先用派生表解決這個問題。 假設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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.