ruby 多对多

user language
[color=darkred][/color]
A 法语
A 日语
A 德语

B 法语
B 日语

C 法语
C 德语
C 汉语

D 日语
D 德语

怎么查询既会 法语 又会 日语 的用户

ruby on rails 程序设计 , 传来的是一个数组 然后到数据库查询 如果有ruby 方法的话更好

这里只是为了简单说明 事实上p它是一个中间表分别有一张用户表和一张语言表

[color=red]请不要用子查询,我举的只是个例子,如果要查会多种语言的子查询是不可取的[/color]

我的答案是
[code="ruby"]
Language.find_by_name("法语").users&Language.find_by_name("日语 ").users[/code]

select count(t.id)
from t
where t.language ='japenese' or t.language ='french'
group by t.id

只有count数大等于2才符合要求,这样可以不,没有经过验证,不好意思,呵呵