2012-06-22 25 views
1

我想选择具有角色A和/或B但不包含角色c的用户。我试过这个查询,但它不起作用。ms访问sql语句选择具有角色a和b的用户

SELECT User from table1 where (role ="A" or role = "B") and (Role <> "C"). 

用户可以有多个角色。然后可以有ABC,AC,AB ...

+3

当你说他们能有一个以上的角色,你的意思是,从字面上栏可以有值“ABC”? – dodexahedron

+1

看起来像重新设计是必要的。 – Fionnuala

+1

如果用户可以拥有多于1个角色,那么按照惯例,您几乎肯定应该有一个“角色”表,该表与“用户”表具有1:多关系 – ChrisW

回答

0

我想如果你只是省略role <> "C"它会只有得到role=A and role=B的行。另外,看文档,看起来你的括号在你的(role ="A" or role = "B")是不必要的。

1

谢谢你们我想通了

SELECT DISTINCT a.User, a.ROLE 
FROM table1 AS a 
WHERE (((a.User) Not In (select user from table1 where 
ROLE = "ROLEC" and user = a.user)) AND ((a.ROLE)="ROLEA" Or (a.ROLE)="ROLEB") 
ORDER BY a.User;