【问题标题】:How to join another table in Sequelize query如何在 Sequelize 查询中加入另一个表
【发布时间】:2021-08-29 07:07:17
【问题描述】:

我的模型中有 Items、Orders 和 OrderRows。 这个查询通过作为参数给出的 order_id 给了我 orderRows,但是 我仍然需要的是 item´s (productname) 而不仅仅是通常在 orderRow 中的 item_id。

我在不同的地方尝试过 include 和 required ,但没有用。

查询在这里:

// GET ORDER-ROWS BY ORDER_ID
orderRowRouter.get('/order/:orderid', async (req, res) => {
    try {
        const rowsByOrder = await Orderrow.findAll({
            where: {
                order_id: req.params.orderid
            }
        })
        return res.json(rowsByOrder)
    }
    catch (exception) {
        res.json(exception)
    }
})

回复如下:

[
    {
        "orderrow_id": "1fe71649-d0f1-4cd7-b987-7190e88deede",
        "item_id": "02d5a0ee-f19f-458c-98d2-df51fea551e7",
        "order_id": "9fb9d681-7555-4e6c-a92b-921aa008fc19",
        "amount": 2,
        "createdAt": "2021-06-11T21:25:45.604Z",
        "updatedAt": "2021-06-11T21:25:45.604Z"
    }
]

在 item_id 的位置,我想在 Item 模型和 db 表中使用 productName。

【问题讨论】:

标签: node.js sequelize.js


【解决方案1】:

我终于像这样使用原始 SQL 查询:

//added to imports
const db = require('../models/index')

.......

orderRowRouter.get('/order/:orderid', async (req, res) => {
    try {
        const [results, metadata] = await db.sequelize.query
             ("SELECT * FROM orderrow LEFT JOIN item ON item.item_id = orderrow.item_id WHERE  order_id = " + "'" + orderid + "'")

        console.log(results)
        return res.json(results)
    }
    catch (exception) {
        console.log(exception)
        res.json(exception)
    }
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-02
    • 2015-11-30
    • 2013-08-16
    • 1970-01-01
    • 2021-08-30
    • 2015-10-14
    • 2015-05-09
    • 1970-01-01
    相关资源
    最近更新 更多