2013-07-14 28 views
0

請原諒我,如果我得到一些術語錯誤,仍然試圖學習高級mySql查詢。我試圖從電子商務平臺導出數據,並且我需要的一些數據在查找表中,問題是我有一個查找表可能有多個關聯的值,並且需要將數據導入到系統中需要該列的特定格式。自定義格式的mysql查詢和一個列中的多個值

如果有幫助,我正在使用zen購物車作爲我的源,下面是查詢。

Select zp.products_id as id, zpd.products_name as name, products_price_w as cost, products_price as price, zp.products_date_added as date_created, zp.products_image as thumbnail 
FROM `zen_products` as zp 
LEFT JOIN `zen_products_description` as zpd ON zp.products_id = zpd.products_id 
WHERE zp.products_status = 1 
ORDER BY zp.products_id ASC; 

我需要的是那裏有一個查找表,告訴我屬於每一個產品是什麼類別的,我知道這將是另一個加盟,但我需要它,所以如果超過1個類別屬於產品把它放在同一列中,並用@符號加入它們,而不是它的類別ID,它的路徑,所以我需要在另一個表中查找類別ID來獲取路徑。

因此, 「類別1 /子類別2 @」 例如..

感謝您的任何指導。

編輯:我仍然需要得到的結果合併爲我得到雙重我想要的結果,但我看到了創紀錄的每個類別將其與本公司在...

Select zp.products_id as id, zpd.products_name as name, zcd.categories_name as categories, products_price_w as cost, products_price as price, zp.products_date_added as date_created, zp.products_image as thumbnail 
FROM `zen_products` as zp 
INNER JOIN `zen_products_description` as zpd ON zp.products_id = zpd.products_id 
INNER JOIN `zen_products_to_categories`as zptc ON zp.products_id = zptc.products_id 
INNER JOIN `zen_categories_description` as zcd on zptc.categories_id = zcd.categories_id 
WHERE zp.products_status = 1 
ORDER BY zp.products_id ASC; 

回答

0

你是什麼尋找是group_concat()。我認爲它會是這樣的:

Select zp.products_id as id, zpd.products_name as name, 
     group_concat(zcd.categories_name separator '@') as categories, 
     products_price_w as cost, products_price as price, 
     zp.products_date_added as date_created, zp.products_image as thumbnail 
FROM `zen_products` as zp 
INNER JOIN `zen_products_description` as zpd ON zp.products_id = zpd.products_id 
INNER JOIN `zen_products_to_categories`as zptc ON zp.products_id = zptc.products_id 
INNER JOIN `zen_categories_description` as zcd on zptc.categories_id = zcd.categories_id 
WHERE zp.products_status = 1 
group by zp.products_id 
ORDER BY zp.products_id ASC; 
+0

這似乎是個竅門! – nerdology