javascript - Sequelize MySQL从同一个表中选择(左连接)

标签 javascript mysql left-join sequelize.js

如何使用 Sequelize 从同一个表中选择两次? 这是 MySQL 代码:

select b.*, a.parent_id
from theSameTable as b left join theSameTable as a on b.parent_id = a.id

这是我的 MySQl 表

enter image description here

这是我的 Sequelize 代码

const db = await ec.sequelize.define(tableDb, {
    id: {
        type: ec.Sequelize.INTEGER.UNSIGNED,
        primaryKey: true,
        autoIncrement: true
    },
    url: ec.Sequelize.STRING(511),
    url_hash: ec.Sequelize.STRING(32),
    name: ec.Sequelize.STRING(511),
    full_name: ec.Sequelize.STRING(511),
    parent_id: ec.Sequelize.INTEGER(11).UNSIGNED,
    cnt: ec.Sequelize.STRING(255),
    chk: ec.Sequelize.INTEGER(1)
}, {
    indexes: [{
        unique: true,
        fields: ['url_hash']
    }]
});

await ec.sequelize.sync();

最佳答案

终于找到答案了。也许对某人来说会有用。 之后

await ec.sequelize.sync();

db.belongsTo(db, {
    as: 'db2',
    foreignKey: 'parent_id',
    required: false
});

let rows = await db.findAll({
    where: {
        chk: 0
    },
    include: [{
        model: db,
        as: 'db2',
        attributes: ['id', 'full_name']
    }],
    raw: true,
    limit: 20
}).catch(function (err) {
    console.log(err);
});

关于javascript - Sequelize MySQL从同一个表中选择(左连接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46812282/

相关文章:

mysql - 将两个 MySQL 查询合并为一个

php - 对 JSON、PHP、AS3 不知所措 : Cannot trace correct value

mysql - SQL从有限制的2个表中选择

javascript - json 数组需要基于 angularjs 应用程序中包含时间的文本进行格式化

javascript - 在触发函数以在 JavaScript 中执行之前等待

php - MySQL 按日期和月内整数排序

MySQL 左连接带有附加的类似条件

Mysql左连接和求和

javascript - 使用标签样式的复选框的不确定 CSS 样式

javascript - 在 D3 定向力布局中循环遍历额外数据