我正在尝试使用两步筛选器对使用产品类别和产品标签的产品进行排序。如何使用类别和标签的组合来制作MySQL筛选器
一个产品可以有几个类别和几个标签。
但是,此时只能选择一个类别。在用户选择了一个类别之后,我只想显示具有所选类别中产品的标签。
例如: INPUT 类别=车 输出 标签=宝马,福特
表:
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
安置自己的尝试 –
SELECT tags.tag_id,tag_types.tag FROM标签,tag_types, 类别WHERE tags.item_id IN( \t SELECT PRODUCT_ID \t FROM类别 \t WHERE CATEGORY_ID =( \t \t SELECT ID \t \t FROM类别 \t \t其中名称= 3) ) GROUP BY tags.tag_id – StaalCtrl