2013-06-25 20 views
0

我有一個表格,賬戶信息包含在。so賬號中,然後是一個動作代碼等。每個賬戶在賦予多行時可以有許多動作代碼。我想選擇其歷史記錄中沒有特定代碼的帳戶。每個賬戶有多行的SQL表格

例如:如果代碼CODE001是針對帳戶1234,那麼我不想爲該帳戶返回記錄。我知道我在這裏很厚!

感謝

+0

一個sugesstion爲將來發布添加您的表架構或使用http://sqlfiddle.com/#!3以更好地瞭解讀者 –

回答

1

我想你有2個表:1個表帳戶信息和1個表帳戶ID和actionCode?

如果是這樣,讓所有不在內部的選擇結果的帳戶:

SELECT * FROM accountTable WHERE accountID NOT IN (SELECT DISTINCT accountID FROM account_actionCode WHERE actionCode = 'CODE001') 
+0

是的!我應該今天呆在家裏!謝謝Ben!我將在一天剩下的時間裏戴上帽子。 – GPH

0

試試這個:

SELECT * FROM accounts WHERE ID NOT IN 
    (SELECT DISTINCT(ID) FROM accounts WHERE Code='CODE001') 
0

斯諾這是不可能的(因爲MySQL是跑直線數據庫因爲它對每個條目都有行和列)......但你可以查找面向對象的數據庫。

這樣做是使用兩個數據庫的更好的辦法:

一個用於賬戶,而另一個用於ActionCodes ..

邏輯可以推斷爲

Select Acc from Accounts : 
     where there does not exist a entry in ActionCodes for account Acc 


SELECT * FROM accounts WHERE acc NOT IN (SELECT DISTINCT ac FROM ActionCode WHERE actionCode = 'actioncode') 
相關問題