2011-07-28 65 views
0

匹配我有以下表排序子查詢,其中另一列中的ID

ID | tbl | reply | time 
--- ----- ------- ----------- 
1 | blue| 0 | 01:00 
--- ----- ------- ----------- 
2 | red | 1 | 01:05 
--- ----- ------- ----------- 
3 | pink| 1 | 11:11 
--- ----- ------- ----------- 
4 | pink| 0 | 22:22 
--- ----- ------- ----------- 
5 | pink| 4 | 00:03 
--- ----- ------- ----------- 

的回覆是指ID列,以便ID和應答具有一個連接。 ID是答覆的父母。當reply=0那麼這意味着我們選擇了一個父行,否則它只是回覆。

目前,我有這個簡單的MySQL查詢,以便選擇只有父母

SELECT tbl, time FROM table WHERE reply=0 ORDER BY time ASC 

這將首先選擇ID=1然後ID=4

我想是可以訂購父母在兒童時代但不向兒童展示。所以在上面的例子中,只是因爲ID=5有0:03時,則ID=4應首先出現,然後ID=1

任何想法如何做到這一點,除了從創建另一個表? 如果它是更好的,也許任何PHP的想法如何做到這一點?

非常感謝您

+0

因此,讓父母與最近的孩子? –

回答

1

我的SQL是有些生疏,但:

訣竅是給主查詢表的名稱(t在這個例子中) - 然後你可以參考它在沒有服務器變得困惑的子查詢中。

我知道這可能只是您的示例,但您最好將時間列存儲爲DATETIME或UNIX時間戳(在INT字段中)。你需要日期,以便昨天23:00發佈的東西不會比今天發佈在15:00的東西更近。

+0

是的這實際上是我的例子,我作爲日期時間存儲:)我會嘗試它,並讓你知道它是否工作!非常感謝 – viper

+0

這樣做的訣竅:D非常感謝你:)我可以問,爲什麼我們採取SELECT MAX而不是簡單的選擇? – viper

+0

'MAX'只返回最大值。或者,你可以做'SELECT ... ORDER BY ... LIMIT 1',但它不是那麼簡潔。 –

相關問題