【问题标题】:New at MySQL, I get the opposite result I wantMySQL的新手,我得到了我想要的相反结果
【发布时间】:2017-05-05 23:45:20
【问题描述】:

问题:获取未为作业 J3 提供的零件的零件名称。 (仅使用子查询)

表信息:

供应商 {s_num, s_name, status, city}

Spj {s_num, p_num, j_num, 数量}

这就是我所拥有的:

SELECT pname, color
FROM Part
WHERE p_num = ANY (SELECT p_num
                    FROM Spj
                    WHERE j_num = 'j3');

显然,我在这里得到了为作业 j3 提供的零件。

当我把它翻到这个时:

SELECT pname, color
FROM Part
WHERE p_num = ANY (SELECT p_num
                    FROM Spj
                    WHERE j_num <> 'j3');

我的结果列出了零件表中的每个零件,因为其他工作至少售出了每个零件的 1 个。

我认为该问题希望从结果中排除在作业 j3 中出售的任何部件。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    如果你想使用这个公式:

    SELECT pname, color
    FROM Part
    WHERE p_num NOT IN (SELECT p_num
                        FROM Spj
                        WHERE j_num = 'j3'
                       );
    

    我发现INNOT INANYSOMEALL 更容易理解。

    【讨论】:

      猜你喜欢
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      相关资源
      最近更新 更多