ruby 多对多

悬赏:5 发布时间:2008-07-21 提问人:vwangzhen (初级程序员)

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



B        法语
B        日语



C        法语
C        德语
C        汉语

D        日语
D        德语


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

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

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

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

采纳的答案

2008-07-22 qichunren (资深程序员)

我的答案是
Language.find_by_name("法语").users&Language.find_by_name("日语 ").users

提问者对于答案的评价:
好!数组的功能就是强大  还有一个sql的简单方法,写不下了

其他回答

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


只有count数大等于2才符合要求,这样可以不,没有经过验证,不好意思,呵呵
qukidon (初级程序员) 2008-07-21