Ver Mensaje Individual
  #17 (permalink)  
Antiguo 23/05/2008, 10:30
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 9 meses
Puntos: 300
Respuesta: Varias filas o varias columnas para una tabla

Con GROUP_CONCAT
enseñar: modo=0
aprender: modo =1
inglés: id_idioma = 1


SELECT distinct tu.nombre_usuario, tu.email, TRIM(group_concat (distinct if(tiu.modo=0, ti.nombre_idioma, "") ORDER BY ti.nombre_idioma ASC SEPARATOR ' ')) as aprender, TRIM(group_concat(distinct if(tiu.modo = 1, ti.nombre_idioma, "") ORDER BY ti.nombre_idioma SEPARATOR ' ')) as enseñar FROM tabla_usuarios tu INNER JOIN tabla_idioma_usuarios tiu ON tu.id_usuario = tiu.id_usuario INNER JOIN tabla_idioma ti ON ti.id_idioma = tiu.id_idioma where tu.id_usuario IN (select tu.id_usuario FROM tabla_usuarios tu INNER JOIN tabla_idioma_usuarios tiu ON tu.id_usuario = tiu.id_usuario INNER JOIN tabla_idioma ti ON ti.id_idioma = tiu.id_idioma WHERE tiu.id_idioma = 1 AND tiu.modo = 0) group by tu.id_usuario

He añadido TRIM para quitar los espacios en blanco al principio y final del GROUP_CONCAT. Ahora con espacio por medio entre los idiomas será fácil manejarlo con PHP...

Última edición por jurena; 23/05/2008 a las 10:57 Razón: añadir dos TRIM() y alguna aclaración