2013-10-11 43 views

回答

1

簡單連接,然後GROUP_CONCAT

SELECT a.product_name, GROUP_CONCAT(c.variant_name) 
FROM table_products a 
INNER JOIN table_product_varients b ON a.product_id = b.product_id 
INNER JOIN table_varients c ON b.variant_id = c.variant_id 
GROUP BY a.product_name 
+0

感謝您的快速反應。 GROUP_CONCAT()將連接字符串Form中的所有值並將其視爲單個值。有沒有其他方法可以分別讀取所有的值(在這種情況下是變體)。我問這是因爲在查詢後我需要將所有這些值存儲在perl變量中。 –

+0

並非如此,因爲這意味着從查詢中返回每行中可變數量的列。如果您使用GROUP_CONCAT和適當的分隔符,則可以基於該分隔符將該字段分解爲數組,但是在腳本中循環插入各個值到數組中可能會更容易。想想php(也可能是Perl),你可以敲一個MySQL函數將GROUP_CONCAT字段轉換爲序列化數組,但不確定這會有所幫助,我也不期望它很容易被維護。 – Kickstart