我正在分組類型系統凡在我表分組,父分組(id
這是主鍵)和它的N- -SUB分組是下(parent_id
)存儲,下面是我的表結構:分組和N-子分組MSQL查詢(同catgeory和N個子catgeory)
Packet_table
id | packet_name | parent_id |
------------------------------
1 | 01 | 0
2 | 02 | 0
3 | 03 | 1
4 | 04 | 1
5 | 05 | 1
6 | 06 | 4
7 | 07 | 4
8 | 08 | 3
9 | 09 | 5
10 | 010 | 2
........................so on and on with N packets in same table
下面是我試圖但其沒有得到id
N個子數據包正確細節:
SELECT p.`packet_name` AS MAIN, s.`packet_name` AS SUB
FROM packet_table s
LEFT JOIN packet_table p ON s.`parent_id` = p.`id`
這就是按照上述表:ID(這是主/自動增量)
ID = 1 - >主要分組(01),它的子和N個子包是:
01 - > 03,04,05
04 - > 06,07
03 - > 08
05 - > 09
總之
01 -> 03 -> 08
04 -> 06 , 07
05 -> 09
其上面的設計格式MySQL的代碼沒有必要..只是簡單的N個子包查詢會做
以上僅僅是少數,但在我的情況下,每個(id)都會有N個子數據包。
注意:它可以是相同的類別和N子類別類型,也請注意,如上所述我不希望查詢如上所述(作爲樹)..我只需要只有MySQL查詢任何格式..
1}只需要的是當我用ID搜索= 1,那麼結果一定會給我所有子包和其N個子子包,
2}當我與任何子包ID進行搜索,那麼它結果應該給我它的子數據包和它的所有N個子數據包,依此類推......也是這個子數據包是哪個主包和vise verse。
UPDATE:請檢查下面的格式查詢我需要一些有N個包
Table Format 1 : thats Main Packet
+------------+------------+----------+
| Main Pkt | Sub Packet | COUNT(*) |
+------------+------------+----------+
| 01 | 03 | 1 |
| 01 | 04 | 1 |
| 01 | 05 | 1 |
--------------------------------------
二:
Table Format 2 : thats Sub and Its N sub Packet
+------------+------------+-----------------+
| Main Pkt | Sub Packet | N Sub Packet |
+------------+------------+-----------------+
| 01 | 03 | 08 |
| 01 | 04 | 06 |
| 01 | 04 | 07 |
| 01 | 05 | 09 |
---------------------------------------------
三:
Table Format 2 : thats Sub and Its N sub Packet
+------------+------------+-----------------+
| Main Pkt | Sub Packet | N Sub Packet |
+------------+------------+-----------------+
| 01 | 03 | 08 |
| 01 | 04 | 06 |
| 01 | 04 | 07 |
| 03 | 011 | 014 | -- *****
---------------------------------------------
above ***** : here 03 is actually sub packet of 01 hence it query will also help me
因此,01 - 03 - 011 - 014
這裏的任何一個什麼 – user3209031 2014-09-05 06:40:55
還在等待查詢:( – user3209031 2014-09-09 09:42:03
正如你發現的那樣,MySQL不支持遞歸「開箱即用」。選擇包括按照需要經常加入表,創建某種類型的sproc,切換到另一種數據模型(例如嵌套集合),或者在應用程序級別處理遞歸邏輯(在這種情況下,使用PHP循環)。所有這些選項都已經在示例中討論過(這裏,和其他地方) – Strawberry 2014-09-10 09:54:08