Puoi usare questa soluzione:
SELECT b.filename
FROM posts a
INNER JOIN images b ON FIND_IN_SET(b.imageid, a.gallery) > 0
WHERE a.postid = 3
Tuttavia, dovresti davvero normalizzare il tuo design e utilizzare una tabella di riferimento incrociato tra post e immagini. Questo sarebbe il modo migliore e più efficiente per rappresentare le relazioni N:M (molti-a-molti). Non solo è molto più efficiente per il recupero, ma semplificherà enormemente l'aggiornamento e eliminazione associazioni di immagini.
Anche se hai rappresentato correttamente la relazione N:M con una tabella di riferimento incrociato, puoi comunque ottenere l'imageid
è in formato CSV:
Supponi di avere un posts_has_images
tabella con campi chiave primaria (postid
, imageid
):
Puoi usare GROUP_CONCAT()
per ottenere un CSV di imageid
's per ogni postid
:
SELECT postid, GROUP_CONCAT(imageid) AS gallery
FROM posts_has_images
GROUP BY postid