2016-11-21 10 views
0

多対多関係で関連付けられたテーブルの列で並べ替えるクエリを作成するのに問題があります。ActiveRecord/PostgreSQL - 最初の関連付け値による並べ替え

たとえば、ユーザーhas_manyタイトルとタイトルhave_manyユーザー。それらの関係はUserTitleテーブルにあります。 (それは他のクエリとの連鎖ができますように)どのように私はそれらが彼らの持つユーザーオブジェクトだったら 返すユーザーがユーザーの最初のタイトルの「名前」欄

<User id: 1, name: 'Bob'> 
<User id: 2, name: 'Joe'> 
<UserTitle id: 1, user_id: 1, title_id: 2> 
<UserTitle id: 2, user_id: 2, title_id: 1> 
<UserTitle id: 3, user_id: 2, title_id: 2> 
<Title id: 1, name: 'A-Name'> 
<Title id: 2, name: 'B-Name'> 

によってソートされたことをスコープを記述します私のDBの関連テーブルは、最初のJoe、次にBobを返すソートクエリを期待しています(Joeの最初のタイトルはアルファベットの最初のAというタイトルです)。 Rubyのロジックを使用すると簡単ですが、ActiveRecordを使用してSQLクエリを作成する場合は、どのようにアプローチするのかよくわかりません。 (多くの)

+0

とユーザーの "最初の" タイトルはアルファベット順で最初にもすることになっていますか? (あなたはテーブル内の行に自然な「順序」がないことに気付いています)。あなたの 'UserTitle id'は別々でなければなりません(現在はすべて' 1')が、これはまだ「最初の」タイトルを定義するのは難しい方法です。 –

+0

いいえ、それは必要ではありません。 @ErwinBrandstetterのタイポをキャッチしてくれてありがとう – kceballos

+0

あなたの答えはありますか? –

答えて

関連する問題