Hola
Necesito ayuda para escribir una consulta bastante compleja:
Tengo una tabla 'producttags' con ID y Nombre para cada tag.
Y otra tabla 'products' con una columna 'tags' que contiene IDs de varios tags, separados por comas (ej: 20,38,400)
Lo que necesito es hacer un select que me devuelva una columna con el nombre de los tags de cada producto, si es posible separados por un "#"
Alguien sabe como puedo lograr esto?
Si no se entiende avisenme y intento explicarlo mejor.
Es para un sitio bastante grande y con mucho trafico asi que deberia ser lo mas eficiente posible.
Muchas gracias!
No se si es relevante, pero les copio la consulta actual:
Como podran ver, los tags actualmente se levantan usando la tabla 'productjointags', pero el objetivo de esta modificacion es no necesitar mas esa tabla
Código MySQL:
Ver originalselect ProductID
,Discontinued
,Name
,URL
, (select group_concat(t.Name separator
'#') from producttags t
JOIN productjointags pt
ON t.TagId
=pt.TagId
where pt.ProductID
=p.ProductID
) as Tags
, Description
,LeadTime
,Size
,PrintPos1
,PrintSize1
,Pri ntPos2
,PrintSize2
,PrintPos3
,PrintSize3
,Material
,Ad ditionalInfo
,Image1
,Image2
,Image3
,Quantity1
,Quanti ty2
,Quantity3
,Quantity4
,Quantity5
,Origination
, SpecialOffer,OfferExpiryDate,OfferDetails,
(select group_concat(ps.SupplierCode separator
'#') from suppliers s
JOIN productjoinsuppliers ps
ON s.SupplierID
=ps.SupplierID
where ps.ProductID
=p.ProductID
) as SupplierCodes
, CreateDate,LastUpdateDate
;