使用自连接查询,实现查询和“春季风衣”同一类型的其他商品的item_id、item_name、category。

以“春季风衣”所在的表作为第一个表,同时以该表作为第二个表,将第二个表的三个目标字段作为select语句的查询字段。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    为了使用自连接查询,在同一类型的其他商品中查找“春季风衣”的item_id、item_name和category,我需要做以下步骤:

    1. 创建商品表

    首先创建一个包含item_id、item_name和category的商品表。比如,我们创建了一个名为products的表,用以下SQL语句表示:

    CREATE TABLE products (
        item_id INT PRIMARY KEY,
        item_name VARCHAR(50),
        category VARCHAR(50)
    );
    
    1. 插入商品数据

    为了演示查询,我们需要向商品表中插入一些数据,用以下SQL语句表示:

    INSERT INTO products (item_id, item_name, category) 
    VALUES 
        (1, '春季风衣', '衣服'), 
        (2, '夏季T恤', '衣服'), 
        (3, '秋季风衣', '衣服'), 
        (4, '冬季羽绒服', '衣服'),
        (5, '春季鞋子', '鞋子');
    
    1. 自连接查询

    现在,我们可以使用自连接查询语句,找到其他类型的春季风衣。用以下SQL语句表示:

    SELECT 
        p1.item_id, p1.item_name, p1.category 
    FROM 
        products p1 
        INNER JOIN products p2 
            ON p1.category = p2.category 
            AND p2.item_name = '春季风衣' 
    WHERE 
        p1.item_name <> '春季风衣';
    

    这个查询语句的作用是,在同一类型的商品中查找“春季风衣”的item_id、item_name和category。它使用自连接来关联同一表中的两行数据,并在其中一行上过滤出所有不是“春季风衣”的项。在另一行上,WHERE条件筛选出我们需要的“春季风衣”项。最后,INNER JOIN条件使用相同的category字段连接这些行,以过滤出同一类型的其他商品。

    希望这样的解答对您有所帮助。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

这个问题描述太深奥了,看了半天都没有看懂。这不就是最简单的查询吗?

select item_id,item_name,category from xxx where category = '春季风衣';