本题目要求编写SQL语句, 结合sh_goods表和sh_goods_attr_value表创建视图view_goods_2,包含拥有属性值的数量大于1个的商品对应的商品id和name。
时间: 2024-05-30 22:13:20 浏览: 16
好的,您的问题是如何编写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表和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。希望能够帮到你。
sh_view_cate_attr:用于根据商品分类id查找所有属性信息。 商品属性表sh_goods_attr:
根据提供的引用内容,可以创建一个名为sh_view_cate_attr的视图,用于根据商品分类id查找所有属性信息。具体步骤如下:
1. 首先,需要在sh_goods_attr表中添加一个外键,将其与sh_goods_category表中的id列关联起来,以便在查询时能够根据商品分类id查找所有属性信息。可以使用以下SQL语句添加外键:
```sql
ALTER TABLE sh_goods_attr ADD CONSTRAINT fk_goods_category_id FOREIGN KEY (category_id) REFERENCES sh_goods_category(id);
```
2. 接下来,可以创建一个名为sh_view_cate_attr的视图,用于根据商品分类id查找所有属性信息。可以使用以下SQL语句创建视图:
```sql
CREATE VIEW sh_view_cate_attr AS
SELECT g.id AS goods_id, g.name AS goods_name, c.id AS category_id, c.name AS category_name, a.id AS attr_id, a.name AS attr_name, a.value AS attr_value
FROM sh_goods g
JOIN sh_goods_category c ON g.category_id = c.id
JOIN sh_goods_attr a ON a.category_id = c.id
WHERE c.id = <商品分类id>;
```
其中,<商品分类id>需要替换为实际的商品分类id。
3. 最后,可以查询sh_view_cate_attr视图,以查找指定商品分类id的所有属性信息。可以使用以下SQL语句查询:
```sql
SELECT * FROM sh_view_cate_attr; ```