1
を選択していると私は、次の構造を持っている:Sequelize多対多のテーブルの同一の外部キーがただ一つの値
var User = sequelize.define('user', {
name: DataTypes.STRING
});
var Post = sequelize.define('post', {
text: DataTypes.STRING
});
var PostComment = sequelize.define('postComment ', {
id: {
type: DataTypes.BIGINT,
primaryKey: true,
autoIncrement: true
},
comment: DataTypes.TEXT
});
Post.belongsToMany(User, {as: 'postUserComment', through: {model: models.PostComment, unique: false}, foreignKey: 'idPost'});
User.belongsToMany(Post, {through: {model: models.PostComment, unique: false}, foreignKey: 'idUserComment'});
を私は、ユーザーと同じポストに倍数のコメントを作成することができています。
しかし、私は、同じユーザーと同じポストにもっとして1件のコメントを持っていることによって、それらを選択しようとした場合:
Post.findAll({
include: [{model: models.User, as: 'postUserComment', attributes:['name'], through: {attributes: ['comment']}},
limit: 10,
offset: 0,
order: "id DESC"
...
はそれだけで、ポスト内の各ユーザーのための1件のコメントを返します。それらをすべて選択するにはどうすればいいですか?
方言:mysqlの、 Sequelizeバージョン:〜BelongsToMany
との関連付けと同じIDを持つ3.27.0
私はそれをしようとすると、クエリを実行すると、エラーをスロー: "未処理の拒否TypeError:未定義のプロパティ 'getTableName'を読み取ることができません"。 しかし、それは新しいインスタンスを作成するために動作します –
私の悪い、構文エラー、youtソリューションは私のために働いた。ありがとう –