2014-10-28 61 views
0

JOIN我有兩個表A和A_LOGLEFT與LIMIT

的關係是N A_LOG至1A

的表是: A_ID, 口號

的A_LOG表是: a_log_id, A_ID, 數據

裏面的一張桌子我有:

a_id | slogan 
    1 | bla 
    2 | bla bla 
    3 | bla bla bla 
    4 | bla bla bla bla 

裏面的A_LOG表我:

a_log_id | a_id | data 
     1 | 1 | 2012-01-01 
     2 | 1 | 2013-01-01 
     3 | 3 | 2012-02-01 
     4 | 3 | 2013-02-01 

當我做左加入我得到

a_id | slogan    | data 
    1 | bla     | 2012-01-01 
    1 | bla     | 2013-01-01 
    2 | bla bla    | NULL 
    3 | bla bla bla   | 2012-02-01 
    3 | bla bla bla   | 2013-02-01 
    4 | bla bla bla bla  | NULL 

我想要什麼

 a_id | slogan    | data 
     1 | bla     | 2013-01-01 
     2 | bla bla    | NULL 
     3 | bla bla bla   | 2013-02-01 
     4 | bla bla bla bla  | NULL 

我正在使用一個簡單的左連接,我也嘗試做一個左連接(通過數據DESC LIMIT1從A_LOG命令中選擇),但是它限制了連接的數量。

我試圖用一個抽象的例子來說明自己,我看到的其他許多人因爲使用個人環境而感到困惑。 我的真實情況有很多其他連接和東西,但這是問題,我想孤立和解決。

回答

1

試試這個

SELECT A.a_id, A.slogan, max(AL.data) data 
FROM A 
LEFT OUTER JOIN A_LOG AL ON A.a_id = AL.a_id 
GROUP BY A.a_id, A.slogan 
+0

@bacoco。 。 。這對我來說是正確的。你可以設置一個SQL小提琴,以顯示它不工作? – 2014-10-28 17:55:27