可能重复:
如何选择多个连接表值符合选择条件的行?
我有一个Users
表,还有一个Optons
表,其中包含每个用户的一些选项。每个用户可以选择多个选项。
这是表格的样子:
-- this is where user names are stored
create table Users
(
ID int,
UserName varchar(255)
)
-- this table contains options
-- (one flag per row)
create table Options
(
ID NOT NULL AUTO_INCREMENT int,
Flag int,
User_ID int // foreign key
)
我想获得所有设置了两个特定选项的用户,但前提是它们都设置了。
例如,这将返回设置了任何选项的用户:
-- find all users with flags 1 and 2 set
select u.UserName from Users u
inner join Options o on o.User_ID = u.ID
where o.Flag in (1, 2)
如何让它返回表中有两个条目(用于标志 1 和 2)的所有用户Options
?