2014-12-22 31 views
0

我只試圖在下面的代碼中用NOT EXISTS替換NOT IN運算符。 但是,它給了我一個「無效的關係操作員錯誤」。如何在此代碼中用NOT EXISTS代替NOT IN?

我該如何糾正這個錯誤?我錯過重要的東西嗎?請幫忙。

SELECT DISTINCT 'v1', 
        'v2', 
        f.apples, 
        f.bananas, 
        f.oranges  
FROM fruits f 
    WHERE f.code = 'F1' 
    AND f.buyer_fruit_code 
    NOT EXISTS 
      (SELECT c.color_code 
       FROM colors c); 

回答

2

NOT IN運營商意味着什麼從NOT EXISTS條款不同。除其他事項外,NOT EXISTS不是運營商。也許你想要這樣的事情:

SELECT DISTINCT 'v1', 
       'v2', 
       f.apples, 
       f.bananas, 
       f.oranges  
FROM fruits f 
WHERE 
    f.code = 'F1' 
    AND NOT EXISTS (
    SELECT c.color_code 
    FROM colors c 
    WHERE c.color_code = f.buyer_fruit_code 
) 
; 
0

試試這個:

SELECT DISTINCT 'v1', 
         'v2', 
         f.apples, 
         f.bananas, 
         f.oranges  
    FROM fruits f 
    LEFT JOIN color_code c ON f.fruit_code=c.color_code 
     WHERE f.code = 'F1' 
     AND c.color_code is NULL 
+0

謝謝我想嘗試這個,但我特別想在這裏用'NOT EXISTS'代替'NOT IN'。 – codeforme