Javascript 续写多个左连接

Javascript 续写多个左连接,javascript,mysql,sql,sequelize.js,erp,Javascript,Mysql,Sql,Sequelize.js,Erp,我有产品,qtyProducts,订单和订单产品表格 我想得到SUM(qtyBuyedProducts)和SUM(qtySelledProducts) SQL中的真值查询是(两个左连接): 我在Sequelize中尝试过: product.findAll( { group:'id', include: [ { model: qtyProduct, attributes: [[sequelize.fn('SUM', sequeliz

我有
产品
qtyProducts
订单
订单产品
表格 我想得到
SUM(qtyBuyedProducts)
SUM(qtySelledProducts)
SQL中的真值查询是(两个左连接):

我在Sequelize中尝试过:

product.findAll(
  {
    group:'id',
    include:  [
      {
        model: qtyProduct,
        attributes: [[sequelize.fn('SUM', sequelize.col('qty')),'qty_buyed']],
        required: false
      },
      {
        model: ProductOrder,
        attributes: [[sequelize.fn('SUM', sequelize.col('qty')),'qty_selled']],
        required: false
      }
    ]
  })
但我犯了个错误
请帮帮我
我从“邮递员”那里得到了这个错误

{
"name": "SequelizeDatabaseError",
"parent": {
    "code": "ER_NON_UNIQ_ERROR",
    "errno": 1052,
    "sqlState": "23000",
    "sqlMessage": "Column 'qty' in field list is ambiguous",
    "sql": "SELECT `product`.`id`, `product`.`code`, `product`.`name`, `product`.`nameAr`, `product`.`description`, `product`.`unitPriceBuy`, `product`.`warningQty`, `product`.`createdAt`, `product`.`updatedAt`, `qtyProducts`.`id` AS `qtyProducts.id`, SUM(`qty`) AS `qtyProducts.qty_buyed`, `ProductOrders`.`invoiceBuyedId` AS `ProductOrders.invoiceBuyedId`, `ProductOrders`.`productId` AS `ProductOrders.productId`, SUM(`qty`) AS `ProductOrders.qty_selled` FROM `products` AS `product` LEFT OUTER JOIN `qtyProducts` AS `qtyProducts` ON `product`.`id` = `qtyProducts`.`productId` LEFT OUTER JOIN `ProductOrders` AS `ProductOrders` ON `product`.`id` = `ProductOrders`.`productId` GROUP BY `id`;"
},
"original": {
    "code": "ER_NON_UNIQ_ERROR",
    "errno": 1052,
    "sqlState": "23000",
    "sqlMessage": "Column 'qty' in field list is ambiguous",
    "sql": "SELECT `product`.`id`, `product`.`code`, `product`.`name`, `product`.`nameAr`, `product`.`description`, `product`.`unitPriceBuy`, `product`.`warningQty`, `product`.`createdAt`, `product`.`updatedAt`, `qtyProducts`.`id` AS `qtyProducts.id`, SUM(`qty`) AS `qtyProducts.qty_buyed`, `ProductOrders`.`invoiceBuyedId` AS `ProductOrders.invoiceBuyedId`, `ProductOrders`.`productId` AS `ProductOrders.productId`, SUM(`qty`) AS `ProductOrders.qty_selled` FROM `products` AS `product` LEFT OUTER JOIN `qtyProducts` AS `qtyProducts` ON `product`.`id` = `qtyProducts`.`productId` LEFT OUTER JOIN `ProductOrders` AS `ProductOrders` ON `product`.`id` = `ProductOrders`.`productId` GROUP BY `id`;"
},
"sql": "SELECT `product`.`id`, `product`.`code`, `product`.`name`, `product`.`nameAr`, `product`.`description`, `product`.`unitPriceBuy`, `product`.`warningQty`, `product`.`createdAt`, `product`.`updatedAt`, `qtyProducts`.`id` AS `qtyProducts.id`, SUM(`qty`) AS `qtyProducts.qty_buyed`, `ProductOrders`.`invoiceBuyedId` AS `ProductOrders.invoiceBuyedId`, `ProductOrders`.`productId` AS `ProductOrders.productId`, SUM(`qty`) AS `ProductOrders.qty_selled` FROM `products` AS `product` LEFT OUTER JOIN `qtyProducts` AS `qtyProducts` ON `product`.`id` = `qtyProducts`.`productId` LEFT OUTER JOIN `ProductOrders` AS `ProductOrders` ON `product`.`id` = `ProductOrders`.`productId` GROUP BY `id`;"

}

尝试将查询更改为使用嵌套的SELECT,我认为使用grioup by的左连接可能是问题的原因,因为
qtyProducts
ProductOrders

SELECT 
    products.code,
    COALESCE(
        (
            SELECT
                SUM(qty)
            FROM 
                qtyProducts
            WHERE 
                productId = products.id
        )
    , 0) AS qty_selled,
    COALESCE(
        (
            SELECT
                SUM(qty)
            FROM 
                ProductOrders
            WHERE 
                productId = products.id
        )
    , 0) AS qty_buyed
FROM 
    products 
GROUP BY 
    products.id

“但是我得到一个错误”您可以分享这个错误吗?我得到了这个错误消息
“sqlMessage”:“字段列表中的'qty'列不明确”
什么错误?你可以编辑这个问题来包含错误,而不是把它放在评论里吗?我编辑这个帖子谢谢你,这是正确的,有人能把它翻译成续集吗
SELECT 
    products.code,
    COALESCE(
        (
            SELECT
                SUM(qty)
            FROM 
                qtyProducts
            WHERE 
                productId = products.id
        )
    , 0) AS qty_selled,
    COALESCE(
        (
            SELECT
                SUM(qty)
            FROM 
                ProductOrders
            WHERE 
                productId = products.id
        )
    , 0) AS qty_buyed
FROM 
    products 
GROUP BY 
    products.id