首先,大家需要建立两张表:商品表(product)和分类表(category)。其中,商品表至少应该含有以下字段:
CREATE TABLE `product` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `price` decimal(10,2) NOT NULL, `category_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `category_index` (`category_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
分类表至少应该含有以下字段:
CREATE TABLE `category` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `parent_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中,商品表的category_id字段关联分类表的id字段,表示该商品属于哪个分类。分类表的parent_id字段表示该分类的父级分类,如果没有父级分类,则该字段为null。
接下来,大家可以使用以下SQL语句根据一级分类ID查询所有商品:
SELECT p.id, p.name, p.price, c.name AS category_name FROM `product` p JOIN `category` c ON p.category_id = c.id WHERE c.parent_id = ${category_id};
其中,${category_id}表示一级分类的ID。
上述SQL语句使用JOIN语句将商品表和分类表连接在一起,同时使用WHERE语句筛选出父级分类ID为指定ID的商品。查询结果包含商品ID、名称、价格以及所属的分类名称。
综上所述,根据一级分类查询所有商品的功能可以通过MySQL的连接查询实现。在实际开发中,大家还可以根据需要添加排序、分页等功能,以满足不同需求。