我有2个表包含一些列,另一个表我希望它的行作为视图的列。
table1
uid|atr1|atr2|atr3
table2
uid|col1|col2
profile_fields(this is a dynamic table, thats why its rows)
fid|name
profile_values
fid|uid|value
所以最后我想要一个这样的视图,每个uid有一行:
View
uid|atr1|atr2|atr3|col1|col2|name(all row names here from profile_Fields)|
和每个uid的1个输入行及其所有用户数据和值
我不明白如何使用profile_fields创建视图,因为它有行而不是列。它首先没有这个表,但不能像我上面解释的那样工作。
答案 0 :(得分:0)
您应该使用数据透视表机制,例如 -
SELECT pv.*,
MAX(IF(pf.field = 'Category1', pv.value, NULL)) AS Category1,
MAX(IF(pf.field = 'Category2', pv.value, NULL)) AS Category2,
MAX(IF(pf.field = 'Category3', pv.value, NULL)) AS Category3
FROM profile_values pv
LEFT JOIN profile_fields pf
ON pv.fid = pf.fid
GROUP BY uid
然后将此查询加入到您的表中。