2012-08-02 69 views
0

我在我的MySQL數據庫中有一個包含活動記錄的表。它看起來像:在MySQL中鏈接和提取記錄

Action_______________Date_________________User________________Location___________Ref Number 
Action 1........1/1/2012.........J Jones.......Home.............0
Action 2........2/1/2012.........K Smith.......Work.............00234 
Action 2........2/1/2012.........J Jones.......Home.............0
Action 1........4/1/2012.........B Smith.......Home.............00345 
Action 3........5/1/2012.........J Jones.......Mobile...........0
ETC 

我所尋找的是一個查詢,將經過表,發現1和行動的第一次出現,然後去找行動2相同的參考號,即動作3等。

它會爲表格中Ref Number的每個出現次數執行此操作。

這些都需要在PHP中被作爲一個單獨的數據線即:

Ref No._____________Act1date_____________Act1User_____________Act1location_____________Act2date_____________Act2User__etc 
00123..........1/1/2012..........J Jones............Home....................2/1/2012..........J Jones 
00234..........1/1/2012..........J Jones............Work....................2/1/2012..........J Jones 00345..........1/1/2012..........J Jones............Home....................2/1/2012..........B Smith 

也將有一些計算做Action1_date和Action2_date等

我能之間即時間差不認爲如何編寫查詢來做到這一點 - 任何人都可以幫忙嗎?

在此先感謝,

+0

如果只有動作2而沒有動作1會怎麼樣?你在桌子上留下一個空白?似乎不是在我看來最好的方法:/ – 2012-08-02 08:57:15

+0

你的意思是類似於SELECT * WHERE refNumber = x ORDER BY action_id? – drupality 2012-08-02 08:58:50

+0

感謝您的回覆。數據源被追加到每個月,動作1標誌着創建一個新的Ref編號,這意味着其他動作將會跟隨,所以你描述Elias的問題不應該發生。我已經使用了由drupality和Fluffeh(!)建議的方法的順序(非常感謝)。這些記錄會取出記錄,但我希望最終得到一行數據 - 也許在新表格中有一個新行,然後我可以使用它來計算和分析... – highfidelity 2012-08-02 09:44:50

回答

1

只需使用order by語句對結果進行排序。

select 
    action, 
    Date, 
    User, 
    Location, 
    refNumber 
from 
    yourTable 
order by 
    refNumber, 
    action