RailsのActiveRecordのクエリあいまいな列名エラー
SQLite3::SQLException: ambiguous column name: id: SELECT "users".* FROM "users" LEFT JOIN lists_users AS lu ON lu.user_id = id WHERE (id != 2 AND lu.list_id != 34)
ActiveRecordクエリの助けを借りてこれをどのように作成するのですか?
RailsのActiveRecordのクエリあいまいな列名エラー
SQLite3::SQLException: ambiguous column name: id: SELECT "users".* FROM "users" LEFT JOIN lists_users AS lu ON lu.user_id = id WHERE (id != 2 AND lu.list_id != 34)
ActiveRecordクエリの助けを借りてこれをどのように作成するのですか?
Rails 5を使用している場合は、クエリにleft_outer_joins
を使用できます。また、not
を使用すると、条件の不一致を防ぐために、テーブル名に条件を入れることができます。
left_outer_joins(:list_users).where.not(users: { id: user.id }, list_users: { list_id: list.id })
この検索結果には、1人のIDを持つ多くのユーザーがいます。これはどうですか? –
@ shuba.ivanは、クエリに '.distinct'を含めるだけです – Aguardientico
あなたは何を使用していますか?ルビーの鉱山では、crtl +スペースが可能な関数を参照していない場合、クエリの関数を参照してください、多分いくつかのプラグインが必要ですが、私はプラグインを見つけることができません –
あいまいさを避けるために 'users.id'を指定する必要はありませんか? –
私はこのSQLの例では、特定のユーザIDを必要とします。ユーザid = 3を除外し、リストlists_usersのためにlu.list_idを除外すると、このテーブルは別名luを持ちます –
例 –