我有一个表“exercise_results”。人们在一开始就投入了他们的成果,然后两个月后他们把结果放到了他们的改进之中。他们的开始集具有“1”的exercise_type_id,并且结束集具有“2”的exercise_type_id。如何将两个MySQL行合并为一个并使用PHP将它们显示在表中?
我需要一种方法来显示这一点成HTML表格,看起来像这样:
foreach循环,但是这与单排。我无法将两行合并为一行。我认为这可能与某种MySQL加入一样简单?我们通过他们的person_unique_id标识每个人。
这里是我的领域:
id | person_unique_id | person_name | exercise_type_id | mile_running_time | bench_press_weight_lbs | squat_weight_lbs | date_of_exercise_performed
示例行:
1 | J123 | John Smith | 1 | 8 | 200 | 300 | 2010-03-20
2 | J123 | John Smith | 2 | 7 | 250 | 400 | 2010-05-20
3 | X584 | Jane Doe | 1 | 10 | 100 | 200 | 2010-03-20
4 | X584 | Jane Doe | 2 | 8 | 150 | 220 | 2010-05-20
我已经尝试了一些解决方案,但我迷路了。任何帮助都会很棒。谢谢!
编辑:
针对下面的评论,我希望像一些数据:
array 0 =>
array
'Exercise' =>
array
'person_unique_id' => string 'J123'
'person_name' => string 'John Smith'
'begin_mile_running_time' => string '8'
'end_mile_running_time' => string '7'
1 =>
array
'Exercise' =>
array
'person_unique_id' => string 'X584'
'person_name' => string 'Jane Doe'
'begin_mile_running_time' => string '10'
'end_mile_running_time' => string '8'
数据库是否修复?我的意思是,你能改变桌子吗? – 2010-11-03 20:03:24
不是。生产应用程序中使用的表中已经有很多数据。 – Michael 2010-11-03 20:04:46
您可以通过按id分组并查询,并选择MAX(IF(exercise_type_id = 1,mile_running_time,''))AS'Start',MAX(IF(exercise_type_id = 2,mile_running_time,''))AS'End '等...可能有点具有挑战性,但我只需要做这种类型的汇总。 – methodin 2010-11-03 20:18:59