#sql #postgresql
#sql #postgresql
Вопрос:
У меня есть 5 таблиц,
product:
id | name | description | enable
category:
id | name | enable
category_product:
id | product_id | category_id
image:
id | name | files | enable
image_product:
id | product_id | image_id
Я бы хотел, чтобы моя таблица соединений напоминала это:
product.name | product.description | category.name | image.name | image.file
Ответ №1:
Я думаю, вы хотите знать, как объединять таблицы, которые не имеют прямого отношения, но через другие таблицы? Тогда ответ заключается в построении цепочки соединений по всем необходимым таблицам.
SELECT p.name,
p.description,
c.name,
i.name,
i.file
FROM product p
INNER JOIN product_category pc
ON pc.product_id = p.id
INNER JOIN category c
ON c.id = pc.category_id
INNER JOIN image_category ic
ON ic.product_id = p.id
INNER JOIN image i
ON i.id = ic.image_id;