LEFT JOIN в sequelize

184
16 декабря 2018, 12:10

Использую mysql и sequelize в Node.js проекте.

Имеется две модели:

module.exports = (sequelize, Sequelize) => {
    let Game = sequelize.define('game',
    {
        id: {
            autoIncrement: true,
            primaryKey: true,
            type: Sequelize.INTEGER
        },
        type_game: {
            type: Sequelize.INTEGER,
            allowNull: true
        },
        nickname: {
            type: Sequelize.STRING(100),
            allowNull: true
        },
    },
    {
        charset: 'utf8',
        collate: 'utf8_general_ci',
        timestamps: true
    });
    Game.associate = function(models) {
        Game.hasOne(models.type_game, {
            foreignKey: 'id',
            as: "type",
        });
    };
    return Game;
};

И вторая модель

module.exports = (sequelize, Sequelize) => {
    let Type_game = sequelize.define('type_game',
    {
        id: {
            autoIncrement: true,
            primaryKey: true,
            type: Sequelize.INTEGER
        },
        type_game: {
            type: Sequelize.STRING(45)
        },
    }
);
return Type_game;
};

Хочу выполнить такой запрос:

SELECT g.*, t.type_game as type_game_text FROM games as g
LEFT JOIN type_games as t ON g.type_game = t.id
WHERE g.nickname = 'anonymus_8'

Пытаюсь сделать запрос:

Game.findAll({
    where: {
        is_end: 0
    },
    include: [
        {
            model: Type_game,
            as: 'type',
        }
    ]
},)
.then(function(result, created) {
    console.log(result);
});

А получается, что-то вроде:

SELECT `game`.`id`, `game`.`type_game`, `game`.`nickname`, 
`type`.`id` AS `type.id`, `type`.`type_game` AS `type.type_game` 
FROM `games` AS `game` LEFT OUTER JOIN `type_games` AS `type` ON `game`.`id` = `type`.`id`
WHERE `game`.`nickname` = 'nick'

Но получается не тот запрос, который мне нужен. Помогите советом, как мне сделать этот SQL запрос с помощью sequelize

READ ALSO
Не работает маска ввода MaskedInput

Не работает маска ввода MaskedInput

Маска подключена два разаПервый раз работает второй - нет

180
Canvas HTML5. Случайные линии

Canvas HTML5. Случайные линии

Решил написать функцию рисования случайных линий:

170
Опять функция перерисовки яндекс карты

Опять функция перерисовки яндекс карты

Была тут подобная тема, но ее решение вообще не работает

321
Как отследить изменившееся значение sessionStorage и поместить в переменную?

Как отследить изменившееся значение sessionStorage и поместить в переменную?

В проекте есть таблица Bootstrap, состоящая из трех колонокПодключен плагин colresizable для того чтобы иметь возможность изменять ширину колонок...

174