这个数字很难量化,所以我可能不会第一次有这个问题。在mysql中选择多个条件的记录
我有一个表如下类似这样的格式:
| id | other_id | timestamp |
| 1 | 1 | 2012-01-01 |
| 2 | 1 | 2012-01-02 |
| 3 | 2 | 2012-01-02 |
什么,我试图做的是,由于与“ID” 2,以及类似的记录的记录,为此,“ID”列价值是已知的,是唯一的,'other_id'是已知的与它相对应的,我如何找到每个具有相同'other_id'的记录的'id',但是第一个低于'id'的记录比我已经知道。
E.g.
$arrKnownIds = array (
0 => array('id'=>2,'other_id'=>1),
1 => array('id'=>3,'other_id'=>2)
);
有了这个信息,我想运行一个查询,使得该结果:
while($row = mysql_fetch_assoc($result)) {
$arrPreviousIds[$row['other_id']] = $row['id'];
// having in this case values of:
// $row['other_id'] = 2;
// $row['id'] = 1;
}
我不能完全工作了,如果我需要解决这个使用UNION,多个PHP查询声明或者是否有其他方法。
有关如何解决这一问题的任何想法,都非常感激。
谢谢:)
编辑 - 原始查询采用以下形式:
SELECT DISTINCT(`other_id`), MAX(`id`), MAX(`timestamp`)
FROM `event`
GROUP BY `other_id`
ORDER BY `id` DESC, `other_id` ASC
LIMIT 0, 10
//这是为了获得最后10个独特的事件,并找到他们时有发生。
//从此,我然后尝试找出他们以前发生过的事情。
我不知道我明白你想要什么。鉴于id 2,它应该返回id 1,因为它是other_id = 1时小于2的最高id。那是正确的吗?所以,鉴于ID 3应该返回null,因为没有更低的ID与other_id = 2? – nnichols 2012-04-13 21:13:39
@nnichols,是的 - 你说的完全正确。 – MyStream 2012-04-13 21:14:50