У меня есть 4 стола: бренды, категория, бренды_категория и файлы. бренды и категории связаны brands_category, который имеет 2 колонки: Brand_ID и CATEGORY_IDmysql select with joins and сводная таблица
## brands ##
id | name | url | ..
## category ##
id | name | order | ..
## brands_category ##
brand_id | category_id
## files ##
id | name | path | brand_id | uploaded_at
Я хочу, чтобы все различные бренды, которые имеют определенной категории и порядка по uploaded_at из таблицы файлов без дублирования брендов. Я сделал несколько попыток, но не могу получить результаты, которые я хочу. Вот самый успех у меня было:
SELECT b.*, aa.uploaded_at
FROM brands b
INNER JOIN
(SELECT bc.brand_id, f.uploaded_at
FROM brands_category bc
INNER JOIN brands b
ON b.id = bc.brand_id
INNER JOIN category c
ON c.id = bc.category_id
INNER JOIN files f
ON f.brand_id = bc.brand_id
WHERE c.id = 1
GROUP BY bc.brand_id ORDER BY bc.brand_id DESC, f.uploaded_at DESC) aa
ON b.id = aa.brand_id
Я получаю бренды в категории 1, но последняя дата uploaded_at не является возвращением, когда бренд имеет несколько файлов, связанные с ним.
Вы должны опубликовать структуру таблицы, данные примеры и желаемых результатов. Как таблица 'files' относится к другим таблицам? – sgeddes
извините файлы относится к брендам по столбцу brand_id в файлах таблицы – Tikaa