我有一个名为 users
的表,另一个名为 user_flags
的表,还有另一个名为 flags
的表
users
表包含一个name
和id
flags
表包含一个name
和id
user_flags
包含一个user_id
和flag_id
如果我想获得所有具有任何提供的标志名称的用户,查询是什么?也就是说,如果查询提供“红色”和“蓝色”但用户仅与蓝色关联,我们将返回该用户。
也就是说,如果我有以下模式:http://sqlfiddle.com/#!9/ac105 - 我传递的标志名称是 red
和 blue
,它将返回用户 John 的行,因为 John 有一个 red
关联旗帜。
最佳答案
您需要根据它们的 id 值连接表,并为标志颜色名称使用 where 子句。像这样:
select * from Users U
join UsersFlags UF on UF.user_id = U.id
join Flags F on F.id = UF.flag_id
where F.name = 'red'
关于sql - 从表 A 中选择在表 B 中至少有 X 条记录的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32983682/