0

我有一个包含帐户信息的表格。所以帐号,然后是操作代码等。每个帐户可以有许多操作代码来提供多行。我想选择其历史记录中没有特定代码的任何帐户。

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

谢谢

4

3 回答 3

1

I guess you have 2 tables: 1 table with account info and 1 table with accountID and actionCode?

If so, get all the accounts that are not in the inner select result:

SELECT * FROM accountTable WHERE accountID NOT IN (SELECT DISTINCT accountID FROM account_actionCode WHERE actionCode = 'CODE001')
于 2013-06-25T10:35:18.460 回答
0

尝试这个:

    SELECT * FROM accounts WHERE ID NOT IN
    (SELECT DISTINCT(ID) FROM accounts WHERE Code='CODE001')
于 2013-06-25T10:39:41.417 回答
0

sNo这是不可能的(因为MySql是一个线性数据库,因为它有每个条目的行和列)......但是您可以查找面向对象的数据库。

更好的方法是使用两个数据库:

一个用于帐户,另一个用于操作代码..

逻辑可以推导出为

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')
于 2013-06-25T10:41:42.720 回答