У меня есть три связанные таблицы.
изображения:
id | имя файла | размер файла | ...
узлы:
image_id | tag_id
теги:
id | Имя
И я использую этот запрос для поиска изображений, содержащих теги x
SELECT images.* FROM images
INNER JOIN nodes ON images.id = nodes.image_id
WHERE tag_id IN (SELECT tags.id FROM tags WHERE tags.tag IN ("tag1","tag2"))
GROUP BY images.id HAVING COUNT(*)= 2
Проблема в том, что мне нужно извлечь также все теги, содержащиеся в найденном изображении, и мне нужно это в том же запросе.
Это фактический запрос, который ищет все теги, содержащиеся в изображении:
SELECT tag FROM nodes
JOIN tags ON nodes.tag_id = tags.id
WHERE image_id = images.id and nodes.private = images.private
ORDER BY tag
Как я могу смешать эти два, чтобы иметь только один запрос?
Мне нужны все таблицы изображений в результатах плюс теги изображения. Подобно:
Я бы
имя файла
размер файла
теги
Возможно, если возможны конкататные теги.