2017-05-05 33 views
0

问:获取部分名字没有为作业J3提供的部件。 (仅使用子查询)新的MySQL的,我得到相反的结果我想

表信息:

供应商{s_num,S_NAME,状态,城市}

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销售的任何部分。

回答

0

如果你想使用这个公式:

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

我找到比ANYINNOT IN更容易理解,SOMEALL

相关问题