使用一个表中的值作为视图中的列名

时间:2011-08-25 23:17:03

标签: mysql sql database

我有两张桌子

表1(所有Int):ID, SomeValue, Category, Dept

表2:CategoryID, VarChar CategoryName

大约有14个类别。

现在我需要一个像DeptID, Cat1, Cat2, Cat3....Cat14

这样的视图

示例行将是:音乐,1,4,55,6,3 ......

所以基本上每个部门都有自己的行,显示表1中使用该部门的所有值 我还需要表2生成的列名称,我认为这就是我丢失的地方。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用group_concat

进行转化
SELECT 
  dept.id as dept_id
  dept.name as dept_name
  , group_concat(cat.CategoryName) as cat_names
FROM table1 as dept
INNER JOIN table2 as cat ON (dept.category = cat.category_id)
GROUP BY dept.id

因为它是MySQL,所以group by上不需要dept.name,因为它完全依赖于dept.id

请参阅:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat