【发布时间】:2015-12-06 11:37:08
【问题描述】:
有一张桌子:
事件 |id |时间戳 --------------------- 事件1|001|21-03-15 事件2|001|22-03-15 事件1|002|23-03-15 事件2|002|24-03-15显示结果的请求应该是什么:
id |事件1 |事件2 | ---------------------- 001|21-03-15|22-03-15| 002|23-03-15|24-03-15|我认为您首先需要选择独特的id:
SELECT id FROM test GROUP BY id;
然后是这样的:
SELECT timestamp
FROM ...
WHERE id IN (SELECT id FROM test GROUP BY id) AND event='event1';
事件提前知道('event1', 'event2')。
如果一个 id 下有重复事件,时间戳不同或相同,则在结果中添加列,例如:
【问题讨论】:
-
你能期望每个 ID 都只有两个与之关联的事件吗?它们会一直被称为“event1”和“event2”吗?
-
imo,MySQL 查询的有用资源:Common MySQL Queries - Extending Chapter 9 of Get it Done with MySQL 5&6。看看
pivot tables。 -
1.每个 ID 不仅会关联两个事件,还会有意外的事件计数 2。是的,事件将始终被称为“事件 1”和“事件 2”