He publicado la pregunta también en el foro de
Cristalab, donde me han propuesto que use las
subconsultas, una solución que me gustó, yo nunca había usado estas subconsultas :)
Copio aquí para que sea útil al próximo con la misma duda.
Código HTML:
SELECT p.id, p.titulo
FROM productos p
WHERE
(SELECT pe.etiqueta_id FROM productos_etiquetas pe WHERE pe.etiqueta_id = 50 AND pe.producto_id=p.id)
AND
(SELECT pe.etiqueta_id FROM productos_etiquetas pe WHERE pe.etiqueta_id = 1 AND pe.producto_id=p.id)
AND
(SELECT pe.etiqueta_id FROM productos_etiquetas pe WHERE pe.etiqueta_id = 32 AND pe.producto_id=p.id)
Beakdan, gracias por el interés, los IDs a filtrar serían como un array, aunque obviamente eso depende del caso, ya que viendo la solución de usar subconsultas, tendría que procesar el array con PHP para crear esas subconsultas.
A ver si este último código resuelve tu duda :)