首页 > 解决方案 > 用密钥 On ExpressJs for mysql 续集多个依赖关联问题

问题描述

我正在从产品详细信息中获取数据,因此我必须与不同的表进行多次连接。以及像产品 - > product_attribute - > attribute_desc这样的依赖加入。当我尝试使用以下代码获取数据时,它会与产品表列product_id连接,但我希望它会与attribute_id连接。

   ProductAttribute.hasOne(AttributeDescription, {as: 'AttributeDescription', foreignKey: 'attribute_id',})

   AttributeDescription.belongsTo(ProductAttribute, {as: 'ProductAttribute', foreignKey: 'attribute_id'})



   Product.findOne({
     where: {
        status: 1,
        product_id: product_id
    },
    include: [
        {
            model: ProductDescription,
            as: 'ProductDescriptions'
        }, {
            model: ProductAttribute,
            as: 'ProductAttributes',
            include: [
                {
                    model: AttributeDescription,
                    as: 'AttributeDescription'
                }
            ]
        }],
   
   })

当前 SQL 示例

SELECT `my_product`.`product_id`, `my_product`.`model`, `my_product`.`sku` FROM `my_product` AS `my_product` LEFT OUTER JOIN `my_product_description` AS `ProductDescriptions` ON `my_product`.`product_id` = `ProductDescriptions`.`product_id` LEFT OUTER JOIN `my_product_attribute` AS `ProductAttributes` ON `my_product`.`product_id` = `ProductAttributes`.`product_id` LEFT OUTER JOIN `my_attribute_description` AS `ProductAttributes->AttributeDescription` ON `ProductAttributes`.`product_id` = `ProductAttributes->AttributeDescription`.`attribute_id` WHERE `my_product`.`status` = 1 AND `my_product`.`product_id` = 999

标签: mysqlnode.jsexpresssequelize.jsnode-mysql2

解决方案


推荐阅读