我試圖讓這個查詢返回產品ID,說明和每個產品的所有成分的列表。所顯示的查詢執行正常,但只返回一條記錄 - 表中的第一個產品ID,其相應描述以及成分表中的每個成分。返回的成分按照正確的順序進行了適當的分組,但它們都被連接成一個結果。例如:PHP MySQL GROUP_CONCAT工作不同於它應該
產品1具有的成分A1,B1,C1 產品2具有成分A2,B2,C2,D2
而當前查詢的結果是:
[Product1_ID],[Product1_Description] 「A1,B1,C1,A2,B2,C2,D2」
我想是:
[Product1_ID],[Product1_Description], 「A1,B1,C1」 [Product2_ID],[Product2_Description ],「A2,B2,C2,D2」
我對此有正確的看法嗎?這是我的查詢:
SELECT TPD.intProductID AS ProductID,
TD.strDescription AS Description,
GROUP_CONCAT(TRH.strName SEPARATOR ', ') AS Ingredients
FROM TProductsDescriptions AS TPD,
TDescriptions AS TD,
TRawHerbs AS TRH,
TProductsIngredients AS TPI
WHERE TPD.intDescriptionID=TD.intDescriptionID
AND TPD.intProductID=TPI.intProductID
AND TPI.intIngredientID=TRH.intRawHerbID;
感謝您的意見。我對SQL很陌生,但我的大學教授建議不要使用join關鍵字。我忘記了爲什麼,儘管 –
@JoeBoris。 。 。要麼你誤解了你的教授,要麼他/她錯了。 'join'關鍵字自1992年以來就是SQL標準的一個真正的部分。它還允許你執行'left','right',並且通常是'full'連接,這很難用隱式連接語法完成。 –
好吧,我會研究這個語法,並開始以這種方式加入,而不是我猜。謝謝你的幫助 –