我有一个包含帐户信息的表格。所以帐号,然后是操作代码等。每个帐户可以有许多操作代码来提供多行。我想选择其历史记录中没有特定代码的任何帐户。
例如:如果代码 CODE001 是针对帐户 1234,那么我不想返回该帐户的记录。我知道我在这里很厚!
谢谢
我有一个包含帐户信息的表格。所以帐号,然后是操作代码等。每个帐户可以有许多操作代码来提供多行。我想选择其历史记录中没有特定代码的任何帐户。
例如:如果代码 CODE001 是针对帐户 1234,那么我不想返回该帐户的记录。我知道我在这里很厚!
谢谢
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')
尝试这个:
SELECT * FROM accounts WHERE ID NOT IN
(SELECT DISTINCT(ID) FROM accounts WHERE Code='CODE001')
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')