创建视图,包含拥有属性值个数大于1的商品信息 分数 4 作者 龙彦宇 单位 广东东软学院 本题目要求编写SQL语句, 结合sh_goods表和sh_goods_attr_value表创建视图view_goods_2,包含拥有属性值的数量大于1个的商品对应的商品id和name。 表结构: CREATE TABLE sh_goods ( id INT PRIMARY KEY, --商品id category_id INT NOT NULL DEFAULT 0 , -- 商品分类id name VARCHAR(120) NOT NULL, --商品名称 keyword VARCHAR(255) NOT NULL, -- 关键词编号 content TEXT NOT NULL , --商品详情 price DECIMAL(10, 2) NOT NULL DEFAULT 0 , --价格 stock INT NOT NULL DEFAULT 0, -- 库存 score DECIMAL(3, 2) NOT NULL DEFAULT 0 , -- 用户评分 comment_count INT NOT NULL DEFAULT 0 -- 评论数量 ) ; CREATE TABLE sh_goods_attr_value (
时间: 2024-02-10 16:07:07 浏览: 52
id INT PRIMARY KEY, -- 属性值id
goods_id INT NOT NULL DEFAULT 0 , -- 商品id
attr_id INT NOT NULL DEFAULT 0, -- 属性id
attr_value VARCHAR(255) NOT NULL -- 属性值
);
创建视图的SQL语句如下:
```
CREATE VIEW view_goods_2 AS
SELECT g.id, g.name
FROM sh_goods g
INNER JOIN (
SELECT goods_id, COUNT(DISTINCT attr_id) AS attr_count
FROM sh_goods_attr_value
GROUP BY goods_id
HAVING attr_count > 1
) av ON g.id = av.goods_id;
```
解释:
首先,我们使用INNER JOIN将sh_goods表和sh_goods_attr_value表连接起来。然后,使用子查询获取属性值数量大于1的商品对应的商品id和属性值数量。最后,我们在主查询中选择商品id和商品名称,并将其存储在视图view_goods_2中。
相关问题
10-38 查询商品表中每项关键词对应的商品数量 分数 2 作者 龙彦宇 单位 广东东软学院 本题目要求编写SQL语句, 检索出sh_goods表中每项keyword对应的商品数量,查询结果显示字段依据输出样例设置。 提示:请使用SELECT语句作答。
答案:
```sql
SELECT keyword, COUNT(*) AS num_of_goods
FROM sh_goods
GROUP BY keyword;
```
解析:
该题目要求查询商品表中每项关键词对应的商品数量,因此需要使用GROUP BY关键字对关键词进行分组,并使用COUNT函数统计每组中商品的数量。最终查询结果中需要显示关键词和对应的商品数量,因此需要将关键词和COUNT函数结果进行别名设置。
查询商品表中每项关键词对应的商品数量分数 2 全屏浏览题目 切换布局 作者 龙彦宇 单位 广东东软学院 本题目要求编写SQL语句, 检索出sh_goods表中每项keyword对应的商品数量,查询结果显示字段依据输出样例设置。 提示:请使用SELECT语句作答。 表结构:
可以使用以下SQL语句查询每项关键词对应的商品数量:
```
SELECT keyword, COUNT(*) AS num FROM sh_goods GROUP BY keyword;
```
其中,`SELECT keyword`表示要查询关键词;`COUNT(*) AS num`表示统计每个关键词对应的商品数量,并将结果命名为num;`GROUP BY keyword`表示按照关键词进行分组。
查询结果将会按照关键词进行分组,并显示每个关键词对应的商品数量,示例如下:
```
+---------+-----+
| keyword | num |
+---------+-----+
| 001 | 10 |
| 002 | 20 |
| 003 | 15 |
+---------+-----+
```