Можете да използвате това решение:
SELECT b.filename
FROM posts a
INNER JOIN images b ON FIND_IN_SET(b.imageid, a.gallery) > 0
WHERE a.postid = 3
Въпреки това, наистина трябва да нормализирате дизайна си и да използвате таблица за кръстосани препратки между публикации и изображения. Това би бил най-добрият и най-ефективен начин за представяне на отношенията N:M (много към много). Той не само е много по-ефективен за извличане, но и значително ще опрости актуализацията и изтриване асоциации на изображения.
Дори ако сте представили правилно връзката N:M с таблица с кръстосани препратки, все още можете да получите imageid
е във формат CSV:
Да предположим, че имате posts_has_images
таблица с полета за първичен ключ (postid
, imageid
):
Можете да използвате GROUP_CONCAT()
за да получите CSV на imageid
's за всеки postid
:
SELECT postid, GROUP_CONCAT(imageid) AS gallery
FROM posts_has_images
GROUP BY postid