23/05/2008, 10:30
|
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
|