2017-05-05 63 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

相關問題