结合sh_goods表和sh_goods_attr_value表创建视图view_goods_2,包含拥有属性值的数量大于1个的商品对应的商品id和name。
时间: 2024-05-28 07:10:58 浏览: 154
好的,您可以执行以下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。希望能够帮到你。
相关问题
本题目要求编写SQL语句, 结合sh_goods表和sh_goods_attr_value表创建视图view_goods_2,包含拥有属性值的数量大于1个的商品对应的商品id和name。
好的,您的问题是如何编写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语句之前,请备份您的数据。
根据商品属性表(sh_goods_attr)与商品属性值表(sh_goods_attr_value),完成视图的创建。 1、创建视图sh_view_attr,该视图能根据商品分类id查找所有属性信息。 2、创建视图sh_view_gods_attr,该视图能根据商品id查找所有属性信息。 3、创建视图view_goods视图,以spu为单位统计商品库存量。
好的,以下是答案:
1、创建视图 sh_view_attr 的 SQL 语句如下:
```sql
CREATE VIEW sh_view_attr AS
SELECT a.*, GROUP_CONCAT(b.value) AS values
FROM shop.sh_goods_attr AS a
LEFT JOIN shop.sh_goods_attr_value AS b ON a.id = b.attr_id
GROUP BY a.id
```
这个视图能根据商品分类 id 查找所有属性信息,并且将相同属性 id 的属性值合并为一个字段 values。
2、创建视图 sh_view_goods_attr 的 SQL 语句如下:
```sql
CREATE VIEW sh_view_goods_attr AS
SELECT a.*, b.value
FROM shop.sh_goods_attr AS a
LEFT JOIN shop.sh_goods_attr_value AS b ON a.id = b.attr_id
```
这个视图能根据商品 id 查找所有属性信息,并且将每个属性值都单独列出来。
3、创建视图 view_goods 的 SQL 语句如下:
```sql
CREATE VIEW view_goods AS
SELECT spu, SUM(inventory) AS total_inventory
FROM shop.sh_goods
GROUP BY spu
```
这个视图以 spu 为单位统计商品库存量,将相同 spu 的商品库存量汇总为一个字段 total_inventory。
阅读全文