我想要合併來自3個表的數據,並且無法獲得確切的語法。使用連接從兩個以上的表中選擇數據
我有一組數據,如下所示,顯示誰做了記錄的歷史記錄。每個記錄的唯一標識符顯示在「ID」中,「Rec No」是分配給與記錄每次交互的序號。
ID Rec No Who Type 1 1 Bob New 1 2 Bob Open 1 3 Bob Assign 1 4 Sarah Add 1 5 Bob Add 1 6 Bob Close 2 1 John New 2 2 John Open 2 3 John Assign 2 4 Bob Assign 2 5 Sarah Add 2 6 Sarah Close 3 1 Sarah New 3 2 Sarah Open 3 3 Sarah Assign 3 4 Sarah Close
我需要找到所有'Assign'操作。但是,如果多個「分配」處於特定ID中,我想查找第一個。然後我也想找到那個人的名字。
我目前的代碼是─
mysql> SELECT IH.WHO, COUNT(IH.ID)
-> FROM INCIDENTS_H IH
-> JOIN(
-> SELECT ID, MIN(RECNO) AS RECNO
-> FROM INCIDENTS_H
-> WHERE TYPE = 'ASSIGN'
-> GROUP BY ID
->)IH2
-> ON IH2.ID = IH.ID AND IH2.RECNO = IH.RECNO
-> GROUP BY IH.WHO
-> ;
產生輸出
+------+--------------+ | WHO | COUNT(IH.ID) | +------+--------------+ | Bob | 1 | | John | 1 | +------+--------------+
到目前爲止好。不過,我還需要根據日期來限制輸出,該日期位於另一個名爲「事件」的表中。此表中的數據是在格式 -
+------+------------+ | ID | ADDEDDATE | +------+------------+ | 1 | 2011-06-01 | | 2 | 2011-06-03 | +------+------------+
ID列是兩個表中相同數量的,並因此可用於找出要使用哪個ADDEDDATE。那麼任何人都可以通過修改上面的代碼來協助代碼將輸出限制爲添加日期爲2011-06-03的記錄?
所以最好
+------+--------------+ | WHO | COUNT(IH.ID) | +------+--------------+ | John | 1 | +------+--------------+
我用mysql 5.1.40
這偉大工程,非常感謝您的迅速反應。 – Andy
很高興,@Andy –