2012-08-02 62 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