簡體   English   中英

如何將mysql查詢翻譯成sequelize

[英]How to translate mysql query to sequelize

我需要用sequelize執行這個查詢:

SELECT movie, genre FROM `yt_movies` M 
LEFT JOIN `genres_link` GL ON M.id = GL.movie_id
WHERE M.id = 1098

我試過了

const YtMovies = db.yt_movies;
const Genres = db.genres;
const GenresLink = db.genres_link;

YtMovies.hasMany(GenresLink, { as: 'GL' });
YtMovies.hasMany(Genres, { as: 'G' });


const res = await db.yt_movies.findAll({
    attributes: ['movie'],
    where: { id: movie_id },
    include: [
        {
            model: db.genres_link,
            as: 'GL',
            required: false,
            // where: { movie_id },
            attributes: ['genre_id'],
        },

    ],
}

但它回來了

SELECT
`yt_movies`.`id`,
`yt_movies`.`movie`,
`GL`.`id` AS `GL.id`,
`GL`.`genre_id` AS `GL.genre_id`
FROM `yt_movies` AS `yt_movies`
LEFT OUTER JOIN `genres_link` AS `GL` 
ON `yt_movies`.`id` = `GL`.`yt_movie_id` WHERE `yt_movies`.`id` = 1098;

最后一個字符串兩行不正確,我希望movie_id而不是yt_movie_id 項目中沒有yt_movie_id名稱的列

LEFT JOIN `genres_link` GL
ON `yt_movies`.id = `GL`.`movie_id` WHERE `yt_movies`.`id` = 1098;

請HALP謝謝!

如果要使用特定列進行關聯,則需要提供sourceKey和foreignKey選項。

試試這個:

YtMovies.hasMany(GenresLink, { as: 'GL' , foreignKey: 'movie_id'})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM