2011-02-07 149 views
1

如果我有一個表如下抓取結果和子結果在1查詢PHP/MySQL的

id | mother_id | subject | date 
1 | 0 | test1 | 122344 
2 | 0 | test2 | 122335 
3 | 1 | reply1totest1 | 122499 
4 | 1 | reply2totest1 | 122734 
5 | 2 | reply1totest2 | 126887 

而且我想PHP生成HTML這將是這樣的:

reply1totest1 
- reply1totest1 
- test1 
reply1totest2 
- test2 

什麼我想說的是,我希望他們聚集在一起,但最後的回覆是最高的。也想這樣做在1查詢,因爲我可以做到這一點,然後扭轉查詢,但我想做的很好,整齊,1查詢...

+0

你最好執行2個分離的查詢。這種排序可能有點棘手,而且性能不高。 – zerkms 2011-02-07 02:45:36

+0

事情是,它不會是2個查詢,它將是1,它會選擇所有mother_id爲0的地方,然後在所有這些結果上進行搜索並選擇其中mother_id是結果ID的子項。 – renevdkooi 2011-02-07 02:47:22

回答

-2

1查詢將是不可能的,因爲檢索本身會需要多個查詢。你有沒有檢出加入? tigzag引用它很好,只是谷歌它! :)

0

我必須說,表結構不允許一個單一的查詢,我的意思是2查詢(選擇(選擇)),因爲這不是一個單一的查詢,有一個缺失的關鍵識別所有項目從一個線程,所以你必須抓取thorw分層設計。

我想我們留下了一些問題。

難道你不能修改thable結構嗎?和/或插入方法? - 我雖然沒有,因爲你要求解決這類問題。

我想出一個假想的單個查詢,以防萬一沒有「回覆回覆」,首先你要運行該SQL語句

update 'table' set mother_id=id where mother_id=0; 

接下來,您可以通過

做排序查詢
select mother_id,subject from 'table' order by mother_id asc,id desc 

我加上「身份證」的查詢,以便您可以循環到數組結果當值的變化做視覺呈現檢測

我希望它有助於一點