我有一个包含帐户信息的表。所以帐号和行动代码等。每个帐户可以有多行动作代码。我想选择其历史记录中没有特定代码的任何帐户。
例如:如果代码CODE001针对帐户1234,那么我不想返回该帐户的记录。我知道我在这里很厚!
由于
答案 0 :(得分:1)
我猜你有2个表:1个表有账号信息,1个表有accountID和actionCode? p>
如果是,请获取不在内部选择结果中的所有帐户:
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')