sql >> Base de Datos >  >> RDS >> Mysql

Mysql:unir tablas para registros de traducción

Siga haciendo uniones izquierdas a la misma tabla en el ID, pero columnas adicionales que representan su idioma...

Editado para mostrar inglés si no hay valor en las columnas correspondientes por consulta de comentario.

select 
      eng.id,
      eng.translated_text InEnglish,
      coalesce( spn.translated_text, eng.translated_text ) InSpanish,
      coalesce( frn.translated_text, eng.translated_text )  InFrench
   from
      translation eng
         left join translation spn
            on eng.id = spn.id
            and spn.Language_ID = 2
         left join translation frn
            on eng.id = frn.id
            and spn.Language_ID = 3
   where
      eng.Language_id = 1
   order by 
      eng.id