我得到了
字段列表中的列'lang_id'不明确
错误。我无法修复它?这是我的程序。
BEGIN
SET @sql = NULL;
SELECT GROUP_CONCAT
(DISTINCT
CONCAT
(
'MAX(IF(lang_id = ''',
lang_id,
''', meta_value, NULL)) AS ',
Concat('lang_', lang_id)
)
) INTO @sql
FROM (
SELECT ml.meta_value, l.lang_id
From ali_langs as l
LEFT JOIN ali_langmeta as ml
On ml.lang_id=l.lang_id) as tt;
SET @sql = CONCAT
('SELECT meta_key, ', @sql, '
FROM ali_langmeta
LEFT JOIN ali_langs
On ali_langmeta.lang_id=ali_langs.lang_id
GROUP BY meta_key'
);
PREPARE stmt
FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
这是我的SQLfiddle链接 http://www.sqlfiddle.com/#!9/5d82a4/3
答案 0 :(得分:2)
无论您使用列lang_id,都需要指定表格,例如。 l.lang_id