本题目要求编写SQL语句, 结合sh_goods表和sh_goods_attr_value表创建视图view_goods_2,包含拥有属性值的数量大于1个的商品对应的商品id和name。
时间: 2024-05-30 21:13:20 浏览: 244
好的,您的问题是如何编写SQL语句,结合sh_goods表和sh_goods_attr_value表创建视图view_goods_2,包含拥有属性值的数量大于1个的商品对应的商品id和name。下面是SQL语句:
CREATE VIEW view_goods_2 AS
SELECT sh_goods.id, sh_goods.name
FROM sh_goods
INNER JOIN sh_goods_attr_value
ON sh_goods.id = sh_goods_attr_value.goods_id
GROUP BY sh_goods.id, sh_goods.name
HAVING COUNT(sh_goods_attr_value.attr_value_id) > 1;
该视图将返回拥有属性值数量大于1个的商品对应的商品id和name。请注意,此视图基于两个表之间的连接和聚合函数。因此,确保这两个表中的值具有正确的格式和数据类型,并且在执行此SQL语句之前,请备份您的数据。
相关问题
创建视图,包含拥有属性值个数大于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 (
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中。
结合sh_goods表和sh_goods_attr_value表创建视图view_goods_2,包含拥有属性值的数量大于1个的商品对应的商品id和name。
好的,您可以执行以下SQL语句来创建视图view_goods_2:
CREATE VIEW view_goods_2 AS
SELECT g.goods_id, g.goods_name
FROM sh_goods g
INNER JOIN (
SELECT goods_id, COUNT(DISTINCT(attr_value_id)) AS attr_count
FROM sh_goods_attr_value
GROUP BY goods_id
HAVING attr_count > 1
) av ON g.goods_id = av.goods_id;
这个视图将会包含所有拥有属性值数量大于1个的商品的商品id和name。希望能够帮到你。
阅读全文