यदि आपके पास निश्चित संख्या में भाषा आईडी हैं, तो आप इसे इस प्रकार कर सकते हैं:
select id,
max(case when LanguageId = 1 then text end) as "1",
max(case when LanguageId = 2 then text end) as "2",
max(case when LanguageId = 3 then text end) as "3"
from t
group by id;
यदि आप पहले से भाषा आईडी नहीं जानते हैं, तो आपको क्वेरी बनाने के लिए डायनेमिक SQL का उपयोग करना होगा और फिर इसे तैयार और निष्पादित करना होगा।
अगर लैंग्वेजिड डायनेमिक है:
select @s = concat('select id',
group_concat(concat(', max(case when LanguageId = ',
LanguageId,
' then text end) as "',
LanguageId, '"'
)
),
' from t group by id'
)
from (select distinct LanguageId from t) t;
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;