mk-toolブログ

エンジニアと家のことをごちゃごちゃと書いてます

SequelizeでwhereHasを行う

include内のrequired値をtrueにすることでwhereHasと同じ挙動の動作をさせることができる。 falseの場合は、ORMのリレーションの結果が0件でも取得できる。

attributesを[]にすることで、whereHasだけを利用することも可能。

XXX.findAll({
    where: findAllParams,
    include: [
        {
            model: YYY,
            where: { YYYId: 3 },
            attributes: ['YYYId'], // カラムの絞り込み
            required: true
        }
    ],
    limit: limit,
    offset: offset
})