Когда кто-то на моем сайте ищет изображение с несколькими тегами, мне нужно запросить и найти все изображения, которые имеют искомые теги, но, похоже, не могут определить этот запрос.
У меня естьImages
таблица.
Таблица Images
имеет отношение к Posts_Images
.
Posts_Images
будет иметь отношение к таблице Posts
.
Posts
имеет отношение к Posts_Tags
таблице.
Posts_Tags
таблица будет иметь отношения к Tags
таблице.
Запрос, который я до сих пор выполнял:
SELECT "images".* FROM "images"
INNER JOIN "posts_images" ON posts_images.image_id = images.id
INNER JOIN "posts" ON posts.id = posts_images.post_id AND posts.state IS NULL
INNER JOIN "posts_tags" ON posts_tags.post_id = posts.id
INNER JOIN "tags" ON posts_tags.tag_id = tags.id
WHERE (("images"."order"=0) AND ("images"."has_processed"=TRUE)) AND (LOWER(tags.tag)='comic') AND ("tags"."tag" ILIKE '%Fallout%') ORDER BY "date_uploaded" DESC LIMIT 30
Он не дает результатов, он проверяет, равняется ли tags
обоим значениям, но я хочу посмотреть, имеют ли какие-либо из tags
, которые были объединены, все нужные мне значения.
ТребуемыйРезультатом будет любой Post
с тегами, соответствующими Comic
и ILIKE '%Fallout%'