mysql - 如何在过滤元素时使sql查询显示每一行?
问题描述
我正在category_id
使用 sequelize 作为 ORM 通过“”过滤我的建立表。我的问题是我正在按category_id = 11
女巫过滤产生类似的东西:
查询:
WHERE `subcategories`.`category_id` = 11;
JSON 给定(只有一个子类别行)
"establishments": [
{
"id": 11,
"name": "Tasco do Ti efe",
"subcategories": [
{
"category_id": 11,
"category_type": "fashion",
"SubCategoryEstablishements": {
"sub_category_id": 31,
"establishment_id": 11,
"createdAt": "2020-04-26 13:39:20",
"updatedAt": "2020-04-26 13:39:20"
}
}
],
]
我希望能够找到合适的餐厅并拥有属于他的所有子类别,如下所示:
"establishments": [
{
"id": 1,
"name": "Melhor efef",
"subcategories": [
{
"category_id": 21,
"category_type": "beautycara",
"SubCategoryEstablishements": {
"sub_category_id": 41,
"establishment_id": 11,
"createdAt": "2020-04-26 13:39:20",
"updatedAt": "2020-04-26 13:39:20"
}
},
{
"category_id": 11,
"category_type": "fashion",
"SubCategoryEstablishements": {
"sub_category_id": 31,
"establishment_id": 11,
"createdAt": "2020-04-26 13:39:20",
"updatedAt": "2020-04-26 13:39:20"
}
},
{
"category_id": 31,
"category_type": "homefamily",
"SubCategoryEstablishements": {
"sub_category_id": 51,
"establishment_id": 11,
"createdAt": "2020-04-26 13:39:20",
"updatedAt": "2020-04-26 13:39:20"
}
}
],
我应该对我的查询进行哪些更改才能实现这一点?
解决方案
您需要定义两个不同的 tableestablishment
和subcategory
. 一个关联将用于过滤,另一个将用于加入establishment
和subcategory
。
您的关联应如下所示 -
subcategory.belongsTo(models.establishment, { foreignKey: 'categoryId', as: 'establishment1' });
subcategory.belongsTo(models.establishment, { foreignKey: 'categoryId', as: 'establishment2' });
您的 Sequuelize 语句应如下所示 -
const allEstablishments = establishment.findAll({
include: [{
model: establishment,
as: 'establishment1',
attributes: [],
required: true,
where: {
[op.and]: [{
'$`subcategories`.`category_id`$ = 11'
}]
}
},
{
model: establishment,
as: 'establishment2',
required: true,
}
]
});
希望能帮助到你!
推荐阅读
- javascript - 将函数组件更改为类组件语法错误
- java - Hazelcast 谓词/ SQL 查询类未找到
- find - 删除找到特定文件的目录中的所有文件
- python - 为什么 "9999999999999999 / 16 = 625000000000000.0" 而 "9999999999999999 // 16 = 624999999999999"
- reactjs - NX 和 NextJS monorepo 中的全局类型声明
- inno-setup - 在 Inno Setup 的许可证页面上添加一个打印按钮(针对 Inno Setup 6 重新访问)
- javascript - scalajs-react:如何从状态对象的 Seq 中获得多行文本字段?
- python - 如何在python中输入用户的字典列表?
- python - Python OSError:[Errno 22] 将 pd.read_csv 与两个 csv 文件一起使用时参数无效
- azure - 如何使用 kafka 使用来自 azure eventthub 的审核消息?