0

私は結合テーブルを持っています:

<% @users.each do |user| %>
<li><%= user.user_id %><%= user.user.name %></li>

私にくれます

  • 1 フレッド
  • 1 フレッド
  • 9 チャーリー

ええと..これまでの回答に感謝します。必要なことを説明するのに十分なほど正確ではなかったことがわかります。

<% @users.each do |user| %>
<li><%= user.user_id %><%= user.user.name %></li>

クエリの結果です。したがって、結果は 10 人の異なるユーザーになる可能性もあれば、2 倍または 3 倍になる可能性もあります。それらが複数表示されたときにマークしたいと思います。データベースで二重エントリを見つけたくありません.....

だから私は |user| で天気を調べなければなりません。同じ user_id を持つ複数の val です。true/false を取得するために、これがより明確になることを願っています。現在、これをアーカイブする方法がわかりません。

4

3 に答える 3

0
Model.group(:user_id).select("user_id, COUNT(*) as total").find_all{|i| i.total > 1}

Model を自分のモデルに置き換えます。

于 2012-09-14T10:40:27.220 に答える
0

user テーブルが自分自身を参照している場合、次のようなものは、このテーブルを参照しuser.users.countている他のユーザーの量を返す必要があります。

于 2012-09-14T10:41:37.253 に答える
0

2 つのテーブルがusersあり、details

ごくわずかな質問から、詳細が重複しているすべてのユーザーが必要だと思います

あなたのSQLは次のようになります

double_details = SELECT u.* FROM users u LEFT JOIN details on d.user_id = u.id 
                            GROUP BY 'u.user_id' HAVING (COUNT(d.id))  > 1
于 2012-09-14T10:30:18.253 に答える