Я пытаюсь создать двухэтапный фильтр для сортировки продуктов с использованием категорий продуктов и тегов продуктов.Как сделать фильтр MySQL с использованием комбинации категорий и тегов
В одном продукте могут быть несколько категорий и несколько тегов.
Но в то время можно выбрать только одну категорию. После того, как пользователь выбрал категорию, я хочу отображать теги, которые имеют продукты в выбранной категории.
Например: ВХОД Категория = Автомобильные ВЫХОДА Теги = BMW, FORD
Таблицы:
CREATE TABLE product(
id INT auto_increment primary key,
name varchar(255)
);
CREATE TABLE tags(
id INT auto_increment primary key,
tag_name varchar(255)
);
CREATE TABLE product_tags(
id INT auto_increment primary key,
tag_id INT,
product_id INT
);
CREATE TABLE product_categories(
id INT auto_increment primary key,
category_name varchar(255),
);
CREATE TABLE categories(
id INT auto_increment primary key,
category_id INT,
product_id INT
);
я пытался несколько решений, но не был в состоянии сделать один запрос, который отображает правильную комбинацию.
SELECT tags.id,tags.tag_name
FROM tags,product_tags,product_categories
WHERE product_tags.product_id IN (
SELECT product_id
FROM categories
WHERE product_categories.id = (
SELECT id
FROM category
WHERE id = 3)
)
GROUP BY tags.tag_id
Какие из решений вы пробовали у вас ближе всего к тому, что вы хотите? Что случилось с этим? – BeetleJuice
Сообщение ваши попытки –
ВЫБРАТЬ tags.tag_id, tag_types.tag из тегов, tag_types, категория ГДЕ tags.item_id В ( \t ВЫБОР PRODUCT_ID \t ИЗ категорий \t WHERE category_id = ( \t \t ВЫБРАТЬ ID \t \t ОТ категория \t \t WHERE name = 3)) GROUP BY tags.tag_id – StaalCtrl