已經搜索了我以前的問題的答案,我找不到最適合我的問題的解決方案。將mysql結果連接到每個行結果的一個字段中
我有一個Symfony2的CRM這在喬布斯拉從定製表中的Opencart的1個數據庫,但它也從其它表,如產品,客戶和屬性收集數據。
我的問題是,因爲有多個屬性的單品,我得到的結果重複行,我需要在一行中導出CSV,但收集的屬性。
這裏是我當前的語句:
SELECT pd.name AS product_name, u.name AS staff_name, CONCAT(c.firstname, ' ', c.lastname) AS customer_name,
s.stage AS stage_name, p.quantity, p.order_date, p.completion_date, p.PO_number, p.order_number, pa.text AS attribute_value,
ad.name AS attribute_name
FROM project p JOIN oc73_product_description pd ON pd.product_id = p.product_id
JOIN user u ON u.id = p.staff_id JOIN stage s ON s.id = p.current_stage
JOIN oc73_customer c ON c.customer_id = p.customer_id
JOIN oc73_product_attribute pa ON pa.product_id = pd.product_id
JOIN oc73_attribute_description ad ON ad.attribute_id = pa.attribute_id
這工作得很好,但對於每一個單獨的屬性,我得到一個新的生產線,因此反覆結果。我試圖GROUP_CONCAT
他們,但後來我只有一個結果與單個字段中的所有屬性,當我真的只想在該結果字段中的產品的屬性。
有沒有修改這個SQL這樣我就可以達到我想要的一種手段?我真的不想編寫兩條語句,因爲這些數據將用於導出CSV,並且如果可能的話,我需要在一個結果集中包含所有行。
編輯:下面是我怎麼樣的屬性字段來看看一個例子。
甲:2.00,B:1.60,C:1.72
其中A,B和C是屬性名稱和號碼的值。
我還與兩個字段開心就好了,就像這樣:
A,B,C | 2.00,1.60,1.72
所以至少這樣數據可以匹配起來。但理想情況下,我更喜歡第一種方法。
請提供一個例子期望的結果應該是什麼樣子像 – SBH