mysql - 用密钥 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
解决方案
推荐阅读
- c# - SMTP:邮箱不可用。服务器响应是:Error458 块
- javascript - 我们如何在 ES7 中调用类内部的方法?
- windows - SSL 和 Umbraco
- google-tag-manager - 我正在使用自定义图像标签在我的网站上放置一个“图像像素标签”。我希望标签在页面顶部触发
- python - Python 3 urllib + PySocks - 使用 SOCKS4 代理打开 url 失败
- swift - 使用 enumerateBodies 沿RayStart 反弹光线
- android - Google Play 开发者 API | 检索评论
- asp.net - DotNet HighCharts 在 Web 表单中导出 Asp.net
- python - Python、QT 和 pyQt 图形用户界面
- r - 使用 faceted geom_col 和 position="fill" 为 geom_text 创建比例数字