簡體   English   中英

基於相關子查詢,SQL連接表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM