Estoy creando una consulta desde una sola columna de una tabla para que el resultado se muestre como una tabla nueva, es decir; cada uno de los elementos de la columna debe verse como un domicilio horizontalmente ya que en la columna se guarda de forma vertical. Ahora bien, logré crear la nueva tabla con la consulta que hice, pero no hace lo que necesito; lo que hace es que me muestra los resultados de la siguiente forma:
nuevo | tipo_via | calle | numero_exterior | numero_interior | referencia | codigo_postal | estado | municipio | ciudad | area_metropolitana | brick_atv | brick_ims | zona_postal | colonia| lada
11010026 0 0 0 0 0 0 0 0 0 0 0 11010026 0 0 0
11010034 0 0 0 0 0 0 0 0 0 0 0 11010034 0 0 0
11010046 0 0 0 0 0 0 0 0 0 0 0 11010046 0 0 0
11025001 0 0 0 0 0 0 0 0 0 0 0 11025001 0 0 0
4.45512E+11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
111001 0 0 0 0 0 0 0 0 0 0 111001 0 0 0 0
111002 0 0 0 0 0 0 0 0 0 0 111002 0 0 0 0
112500 0 0 0 0 0 0 0 0 0 0 112500 0 0 0 0
1303 0 1303 0 0 0 0 0 0 0 0 0 0 0 0 0
210 0 210 0 0 0 0 0 0 0 0 0 0 0 0 0
301 0 0 301 0 0 0 0 0 0 0 0 0 0 0 0
4 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0
45 0 0 45 0 0 0 0 0 0 0 0 0 0 0 0
465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
53100 0 0 0 0 0 53100 0 0 0 0 0 0 0 0 0
54050 0 0 0 0 0 54050 0 0 0 0 0 0 0 0 0
54060 0 0 0 0 0 54060 0 0 0 0 0 0 0 0 0
54080 0 0 0 0 0 54080 0 0 0 0 0 0 0 0 0
7 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0
75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AVENIDA AVENIDA 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CALLE CALLE 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CALZADA CALZADA 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CARPINTERIA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CERRADA CERRADA 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CIUDAD SATELITE 0 0 0 0 0 0 0 0 0 0 0 0 0 CIUDAD SATELITE 0
CONJUNTO PINTORES 0 0 0 0 0 0 0 0 0 0 0 0 0 CONJUNTO PINTORES 0
DATOS CONFIRMADOS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DIEZ 0 DIEZ 0 0 0 0 0 0 0 0 0 0 0 0 0
DOCTOR 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DOLOR ABDOMINAL 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ENFERMERA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Galderma 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
GASTRITIS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
INACTIVO 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
JACARANDAS AMPLIACION 0 0 0 0 0 0 0 0 0 0 0 0 0 JACARANDAS AMPLIACION 0
JUBILADO DE DIRECCION 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
LA LOMA 0 0 0 0 0 0 0 0 0 0 0 0 0 LA LOMA 0
Mead Johnson 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MEXICO 0 0 0 0 0 0 MEXICO 0 0 0 0 0 0 0 0
NAUCALPAN DE JUAREZ 0 0 0 0 0 0 0 NAUCALPAN DE JUAREZ 0 0 0 0 0 0 0
PRUEBA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[email protected] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[email protected] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
SI 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
TLALNEPANTLA DE BAZ 0 0 0 0 0 0 0 TLALNEPANTLA DE BAZ 0 0 0 0 0 0 0
YA NO LABORA AHI 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Si observan, no crea una sola fila sino qué crea varias filas que no se ven como un solo registro, en mi caso un registro puede tener 3 domicilios por lo que se supone que debería verse 3 veces o más bien, debería generar 3 filas, se supone que debe verse así:
tipo_via calle numero_exterior numero_interior referencia codigo_postal estado municipio ciudad area_metropolitana brick_atv brick_ims zona_postal colonia lada
AVENIDA 1303 301 0 0 53100 MEXICO NAUCALPAN DE JUAREZ 0 0 11025001 11010026 0 CIUDAD SATELITE 0
CALLE 210 45 0 0 54050 MEXICO TLALNEPANTLA DE BAZ 0 0 111001 11010034 0 CONJUNTO PINTORES 0
CALZADA DIEZ 0 7 0 54060 MEXICO TLALNEPANTLA DE BAZ 0 0 111002 11010046 0 JACARANDAS AMPLIACION 0
CERRADA 0 0 4 0 54080 MEXICO TLALNEPANTLA DE BAZ 0 0 112500 0 0 LA LOMA
Este es mi código:
Código PHP:
SELECT p.nuevo,
(CASE WHEN r.campo = 'tipo_via' THEN s.nuevo ELSE 0 END) AS tipo_via,
(CASE WHEN r.campo = 'calle' THEN s.nuevo ELSE 0 END) AS calle,
(CASE WHEN r.campo = 'numero_exterior' THEN s.nuevo ELSE 0 END) AS numero_exterior,
(CASE WHEN r.campo = 'numero_interior' THEN s.nuevo ELSE 0 END) AS numero_interior,
(CASE WHEN r.campo = 'referencia' THEN s.nuevo ELSE 0 END) AS referencia,
(CASE WHEN r.campo = 'codigo_postal' THEN s.nuevo ELSE 0 END) AS codigo_postal,
(CASE WHEN r.campo = 'estado' THEN s.nuevo ELSE 0 END) AS estado,
(CASE WHEN r.campo = 'municipio' THEN s.nuevo ELSE 0 END) AS municipio,
(CASE WHEN r.campo = 'ciudad' THEN s.nuevo ELSE 0 END) AS ciudad,
(CASE WHEN r.campo = 'area_metropolitana' THEN s.nuevo ELSE 0 END) AS area_metropolitana,
(CASE WHEN r.campo = 'brick_atv' THEN s.nuevo ELSE 0 END) AS brick_atv,
(CASE WHEN r.campo = 'brick_ims' THEN s.nuevo ELSE 0 END) AS brick_ims,
(CASE WHEN r.campo = 'zona_postal' THEN s.nuevo ELSE 0 END) AS zona_postal,
(CASE WHEN r.campo = 'colonia' THEN s.nuevo ELSE 0 END) AS colonia,
(CASE WHEN r.campo = 'lada' THEN s.nuevo ELSE 0 END) AS lada
FROM cambio p
INNER JOIN cambio s ON p.id_cambio = s.id_cambio
INNER JOIN cambio r ON s.nuevo = r.nuevo
GROUP BY p.nuevo
Este es el header de mi tabla cambio:
id_cambio|id_campania|id_usuario|id_entidad|.....e ntidad......|...anterior..|......nuevo...........| .......campo.......|fecha_cambio
.....9.... |.....1....|.....5....|.....1....|.....Datos Medico.|.............|[email protected].....|..... ..email_1.....|08/10/2018
....10... |.....1....|.....5....|.....1....|.....Datos Medico.|.............|[email protected]..|..... ..email_2.....|08/10/2018
....11... |.....1....|.....5....|.....1....|.....Datos Medico.|.CARPINTERIA.|......................|..... ...hobbie.....|08/10/2018
....12... |.....1....|.....5....|.....1....|.....Datos Medico.|......NO.....|..........SI..........|.publ ica_revistas..|08/10/2018
....13... |.....1....|.....5....|.....1....|.....Datos Medico.|...ACTIVO....|..DATOS CONFIRMADOS...|......estatus......|08/10/2018
....14... |.....1....|.....5....|.....1....|.....Domicilio.. .....|...AVENIDA...|.........CALLE........|......t ipo_via.....|08/10/2018
....15... |.....1....|.....5....|.....2....|.....Domicilio.. .....|....CALLE....|........CALZADA.......|......t ipo_via.....|08/10/2018
Espero me puedan auxiliar a corregir mi consulta.
Gracias por su apoyo.
P.D. Disculpen las tablas tan terribles, pero con este editor no las puedo dejar muy fijas que digamos.