我已經DB這樣的:SQL選擇指定類別的所有產品和兒童
categories(id, parent_id)
items(id, category_id)
,並將這些條目:
分類:
Paintings(id=1, parent_id=NULL),
Landscape(id=2, parent_id=1)
項目:
Painting1(id=1, category_id=2)
我在嘗試g從指定的類別獲取所有項目。
例如:來自繪畫的所有項目將來自Paintings
,Landscape
以及作爲父母Paintings
的任何類別。
我試圖執行此:
SELECT * FROM items p
JOIN categories cp ON p.category_id = cp.id
JOIN categories cc ON cc.parent_id = cp.id AND p.category_id = cc.id
WHERE cp.id = "1"
但它不工作,我沒有料到。
您已將類別表格加入兩次。我想你想在上次加入時使用Items表 –
首頁你可以有多個級別?我的意思是,你可以有另一個類別parent_id = 2;這種行爲可能會繼續。我認爲你不會用一個簡單的查詢來解決它,但有遞歸的東西... – Marco
你可以有很多級別的類別(例如,繪畫1屬於「鄉村景觀」屬於「景觀」,屬於「繪畫」 ),還是隻有頂級和類別(即「繪畫」和「風景」)?如果前者,請注意,MySQL不允許遞歸查詢 - 請參閱更多這裏:http://stackoverflow.com/questions/8561654/how-to-work-with-recursive-query-in-mysql –