這個數字很難量化,所以我可能不會第一次有這個問題。在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