findメソッドで多:多を検索

■結合テーブルが関連するとやっかいですよね
【状況】
テーブルは3つ。
1つは面接枠のテーブルで、開始時間、面接タイプを持っている。
面接官は、複数の面接を持っており、面接官と、面接タイプは多:多のリレーション。
面接と面接官も多:多


この時、同じ枠をまとめたい。つまり、他の面接官が、時間、面接タイプを指定し、枠を作ろう
とした場合、他の面接官によって、すでに同じ枠が作られている場合は、それらを1つにまとめる。


よって、検索したいレコードは、面接時間が同じ、面接タイプが同じ、かつ、面接官IDが異なる
(同じなら、それは自分が作成した枠)レコード。
しかし、面接:面接官が多:多のためにfindが良く分からん。クエリを作りたくても、面接は多:多
なので、interviwer_idを持っていない。その答えはこうだ


Interview.find(:all, :conditions =>
["date_format(held_date_time,'%Y/%m/%d/%H') =? and interview_type_id = ? and
interviewer_id !=
?",self.held_date_time.strftime("%Y/%m/%d/%H"),self.interview_type,self.interviewers[0].id],
:joins => "inner join interviewers_interviews on interviews.id =
interviewers_interviews.interview_id")