将多个依赖关联问题与密钥 On ExpressJs for mysql 联系起来

问题描述

我正在从产品详细信息中获取数据,因此我必须多次连接不同的表。以及有像 product -> 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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)