簡體   English   中英

通過mysql聯接循環

[英]Looping through a mysql join

我正在嘗試制作帶有子類別的下拉菜單。

這是我的MYSQL代碼

SELECT root.categoryName AS root_name, root.id AS root_id, down1.categoryName AS down1_name,
down1.id AS down1_id, down2.categoryName AS down2_name, down2.equipmentID AS down2_id
FROM category AS root
LEFT OUTER 
JOIN category AS down1 ON down1.parent_id = root.id
LEFT OUTER 
JOIN category AS down2 ON down2.parent_id = down1.id

我得到的是

Category 1 28 Sub Category 1 63 NULL NULL
Category 1 28 Sub Category 2 61 NULL NULL
Category 1 28 Sub Category 3 62 NULL NULL

Category 2 29 Sub Category 4 71 NULL NULL
Category 2 29 Sub Category 5 70 NULL NULL

Category 3 27 Sub Category 6 30 Product 1 33
Category 3 27 Sub Category 6 30 Product 2 54

我想要的是:

-Category 1 (id)
    -Sub Category 1 (id)
    -Sub Category 2 (id)
    -Sub Category 3 (id)

-Category 2 (id)
    -Sub Category 4 (id)
    -Sub Category 5 (id)
    -Sub Category 6 (id)

-Category 3 (id)
    -Sub Category 7 (id)
        -Product 1 (id)
        -Product 2 (id)
    -Sub Category 2 (id)
    -Sub Category 3 (id)

您無法在一個查詢中獲得多維數據。 您可以:

  1. 編寫一個查詢以獲取所有數據,然后對其進行處理以構建適當的結構。 看起來就是您開始做的。 您可以在查詢后處理數據,以構建所需的方式。
  2. 進行幾個查詢。 一個用於第一級數據(類別),然后一個用於每個子類別。 這很容易編寫,但效率不高,因為您最終會進行很多SQL查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM