MySQL - unir y trasponer filas

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 7 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

unir y trasponer filas

Publicado por Isabel (2 intervenciones) el 22/07/2020 15:13:08
Hola amigos, estoy bloqueada con un proyecto y he estado intentando adaptar unos ejemplos muy didacticos que hay en otros post pero llevo 3 dias y no soy capaz.

Tengo dos tablas
Tabla items

items_

Tabla props

props_

necesito unirlas y trasponer la filas en columnas tal que asi:

resultado

alguien puede echarme una mano con la consulta??

Gracias anticipadas Isa.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco
Val: 201
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

unir y trasponer filas

Publicado por Francisco (73 intervenciones) el 22/07/2020 17:39:21
Hola

Esta es tal vez la menos eficiente pero la mas facil de entender

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SELECT
	itemID,
	seccionID
	itemName,
	itemOrden,
	activo,
	--PIVOTE
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10001) AS descr,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10002) AS foto,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10003) AS alerg1,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10004) AS alerg2,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10005) AS alerg3,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10006) AS alerg4,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10007) AS precio1,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10008) AS precio2,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10009) AS precio3,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10017) AS desc_precio1,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10018) AS desc_precio2,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10019) AS desc_precio3
FROM items AS i;

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha aumentado su posición en 7 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

unir y trasponer filas

Publicado por Isabel (2 intervenciones) el 22/07/2020 18:58:31
HOla Francisco,muchisimas gracias por contestar, la consulta me devuelve un error:


error


No se que puede ser
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 201
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

unir y trasponer filas

Publicado por Francisco (73 intervenciones) el 23/07/2020 18:38:55
Hola

Prueba quitando --PIVOTE


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT
	itemID,
	seccionID
	itemName,
	itemOrden,
	activo,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10001) AS descr,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10002) AS foto,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10003) AS alerg1,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10004) AS alerg2,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10005) AS alerg3,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10006) AS alerg4,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10007) AS precio1,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10008) AS precio2,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10009) AS precio3,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10017) AS desc_precio1,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10018) AS desc_precio2,
	(SELECT propValue FROM props AS p WHERE p.itemID = i.itemID AND p.propID = 10019) AS desc_precio3
FROM items AS i;

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Luis
Val: 3
Ha aumentado su posición en 17 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

unir y trasponer filas

Publicado por Luis (1 intervención) el 23/07/2020 09:33:51
Hola, yo lo haría con 12 inner join , siempre que las tablas no tengan miles de registros...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar