0

I get

Column 'lang_id' in field list is ambiguous

error. I can not fix it? Here's my Procedure.

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

It is my SQLfiddle link http://www.sqlfiddle.com/#!9/5d82a4/3

Prabhat Sinha
  • 1,500
  • 20
  • 32
ShirAzi
  • 44
  • 6

1 Answers1

2

Whereever you use the column lang_id you need to specify the table, eg. l.lang_id

PhilMasteG
  • 3,095
  • 1
  • 20
  • 27