2013-05-08 46 views
0

我有兩個表編號&分配。分配將數字主列作爲外鍵。我有一個觀點,給了我分配表中存在的所有數字。然而,我期待着做相反的事情,尋找聯合國分配/不在分配表內的號碼。然而,我創造了一個不存在的結果,結果是空白的。結構和觀點如下:無法獲取WHERE NOT EXISTS無法工作

number (table) 
    NID primary 
    number 

allocation (table) 
    AID primary 
    NID Foreign Key to number table 

我的看法結構:

CREATE VIEW vNoAllocationNumber AS 
    SELECT NID 
    FROM number 
    WHERE NOT EXISTS (SELECT NID 
         FROM number, allocation 
         WHERE allocation.NID = number.NID) 
+1

鬆散你的頭髮就是讓它自由漫遊。我認爲你的意思是「輸」。 – paxdiablo 2013-05-08 08:37:48

回答

1

試試這個:

CREATE VIEW vNoAllocationNumber AS 
    SELECT NID 
     FROM number n 
    WHERE NOT EXISTS (
        SELECT 1 
        FROM allocation a 
        WHERE a.NID = n.NID 
      ) 
     ; 

你也可以利用左連接(除非allocation.NID構成AK, 這種技術不僅會爲聯合國工作人員分配的NID):

CREATE VIEW vNoAllocationNumber AS 
    SELECT NID 
     FROM number n 
LEFT JOIN allocation a ON (a.NID = n.NID) 
    WHERE a.NID IS NULL 
     ;