Estoy intentando configurar un índice de esfinge con una relación de muchos a muchos básica entre obras de arte y géneros:índice de esfinge con muchos-a-muchos relación
artworks
---------------
id
title
description
genres
---------------
id
name
artwork_genres
---------------
artworks_id
genres_id
En mi archivo de la esfinge de configuración que tengo algo como
source src_artwork {
...
sql_query = SELECT id, title, description FROM artworks
sql_attr_multi = uint tag from query; SELECT id,name FROM genres
}
Esto es de la documentación, por lo que yo puedo entender, en multi-valued attributes y sql_attr_multi
Pero, obviamente, no se hace mención de la mesa empate en allí y me no puedo entender cómo se trae eso a la configuración. Simplemente me gustaría buscar "Impresionismo" para obtener obras de ese género (ponderado según corresponda si el término aparece en los otros campos)
tenía que agregar un 'GROUP BY id' al final de la declaración de SQL, ¡y funcionó! Había oído hablar de 'GROUP_CONCAT' pero no lo armé para establecer listas de relaciones como esta: un viejo problema en SQL. Enorme salvavidas en este caso. ¡Gracias! – sbeam
Oh sí, buen punto. He editado la respuesta para reflejar tu comentario. ¡Me alegra que lo hayas hecho funcionar! – richbs
Realmente funcionó. ¡Gracias! – Samin