Du kan bruge denne løsning:
SELECT b.filename
FROM posts a
INNER JOIN images b ON FIND_IN_SET(b.imageid, a.gallery) > 0
WHERE a.postid = 3
Du bør dog virkelig normalisere dit design og bruge en krydshenvisningstabel mellem indlæg og billeder. Dette ville være den bedste og mest effektive måde at repræsentere N:M (mange-til-mange) relationer på. Ikke alene er det meget mere effektivt til hentning, men det vil i høj grad forenkle opdatering og sletning billedforeninger.
Selvom du korrekt repræsenterede N:M-relationen med en krydsreferencetabel, kan du stadig få imageid
er i CSV-format:
Antag, at du har en posts_has_images
tabel med primære nøglefelter (postid
, imageid
):
Du kan bruge GROUP_CONCAT()
for at få en CSV af imageid
's for hver postid
:
SELECT postid, GROUP_CONCAT(imageid) AS gallery
FROM posts_has_images
GROUP BY postid