即使经过数小时的搜索和尝试,我仍然无法弄清楚。也许我没有选择正确的话?MySQL - 根据每列的最新日期和ID列表将行转换为列
好了,所以我有表,像这样的活动:
EVENT
+----+------------+------------+------+
| id | id_article | id_section | date |
+----+------------+------------+------+
| 1 | 1 | 1 | 2011 |
| 2 | 1 | 3 | 2012 |
| 3 | 2 | 7 | 2013 |
| 4 | 2 | 6 | 2014 |
| 5 | 3 | 14 | 2015 |
| 6 | 3 | 13 | 2016 |
| 7 | 3 | 0 | 2017 |
+----+------------+------------+------+
我想这个表转动成三个不同的列每列包含列表中的最新事件(id_section和日期) id_section。好了,基本上是这样的:
部1. = id_section IN(1,2,3,4,5)和MAX(日期)
sectionB = id_section IN(6,7,8,9 10)和MAX(日期)
sectionC = id_section IN(11,12,13,14,15)和MAX(日期)
DESIRED RESULT
+------------+----------+----------+-----------+
| id_article | sectionA | sectionB | sectionC | #id_event
+------------+----------+----------+-----------+
| 1 | 3 (2012) | null | null | #id 2
| 2 | null | 6 (2014) | null | #id 4
| 3 | 0 (2017) | null | 13 (2016) | #id 7, 6 <-- two latest events
+------------+----------+----------+-----------+
这里是什么,我r读SqlFiddle
INSUFFICIENT RESULT
+------------+----------+----------+-----------+
| id_article | sectionA | sectionB | sectionC | #id_event
+------------+----------+----------+-----------+
| 1 | 3 (2012) | null | null | #id 2
| 2 | null | 6 (2014) | null | #id 4
| 3 | 0 (2017) | null | null | #id 7 <-- only latest event
+------------+----------+----------+-----------+
我试图用更JOINS,但我仍然无法弄清楚: - 飞行现在它只是每id_article选择最新的事件。
感谢您的帮助!
如果有关系? –
@GordonLinoff然后可能选择更高的ID(事件) –