Вы используете JOIN, например, вы можете использовать: -
SELECT imagePath, title FROM ImagesPath
JOIN ImageTag ON image_id = ImagesPath.id
JOIN Tags ON tag_id = Tags.id
нарисуй пункт
Рабочий пример
Рассмотрим следующее, которое отбрасывает и создает 3 таблицы, затем заполняет таблицы и, наконец, выполняет запрос: -
DROP TABLE IF EXISTS ImagesPath;
DROP TABLE IF EXISTS Tags;
DROP TABLE IF EXISTS ImageTag;
CREATE TABLE IF NOT EXISTS ImagesPath (id INTEGER, ImagePath TEXT);
CREATE TABLE IF NOT EXISTS Tags (id INTEGER, title TEXT);
CREATE TABLE IF NOT EXISTS ImageTag (id INTEGER, Image_id INTEGER, Tag_id INTEGER);
INSERT INTO ImagesPath (id,Imagepath) VALUES (1,'Image1'),(2,'Image2'),(3,'Image3');
INSERT INTO Tags (id,title) VALUES (1,'TagA'),(2,'TagB'),(3,'TagC');
INSERT INTO ImageTag (Image_id,Tag_id) VALUES (1,3),(2,1),(2,2),(2,3),(3,1),(3,3);
SELECT imagePath, title FROM ImagesPath
JOIN ImageTag ON image_id = ImagesPath.id
JOIN Tags ON tag_id = Tags.id;
Результат будет: -
![enter image description here](https://i.stack.imgur.com/LGspq.png)
Обратите внимание, что для столбца id таблицы ImageTag не было назначено никаких значений, это значение, вероятно, будет бесполезным, поскольку таблица ImageTag в основном отображает изображение в тег (ы) (допуская множество отношений) .
Обратите внимание, что вы должны быть немного осторожнее с неопределенностью, например, существует 3 id столбцов, поэтому id имеют префикс с именем таблицы и разделителем периодов согласно ImagesPath.id
, а также Tags.id