SQL表,每个帐户有多行

时间:2013-06-25 10:28:27

标签: sql-server-2008 tsql

我有一个包含帐户信息的表。所以帐号和行动代码等。每个帐户可以有多行动作代码。我想选择其历史记录中没有特定代码的任何帐户。

例如:如果代码CODE001针对帐户1234,那么我不想返回该帐户的记录。我知道我在这里很厚!

由于

3 个答案:

答案 0 :(得分:1)

我猜你有2个表:1个表有账号信息,1个表有accountID和actionCode?

如果是,请获取不在内部选择结果中的所有帐户:

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

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:0)

s它不可能(因为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')