我有以下三个表Type
,Master
和Config
,其中Type
和Master
使用Type_ID
列相互关联。
在第三张表Config
中,一条记录可以引用多于1条Master
记录,因此Master
表ID以逗号分隔的形式放在列Master_IDS
下
Type
---------------
ID Type_Name
1 Flat
2 Round
3 Solid
Master
------------------------
ID Type_ID Master_Name
1 1 Affix
2 1 Super
3 3 Maven
4 2 Baleno
Config
-----------------------------
ID Config_Name Master_IDS
1 Raven 1,3
2 Surplus 3,2
我编写了一个MySQL查询,该查询工作正常并且给出了预期的结果。
SELECT c.Config_Name, t.Type_Name, m.Master_Name
FROM
Type t inner join Master m on t.ID = m.Type_ID
inner join Config c ON FIND_IN_SET(m.ID, c.Master_IDS) > 0;
---------------------------------------------
ID Config_Name Type_Name Master_Name
1 Raven Flat Affix
2 Raven Solid Maven
3 Surplus Solid Maven
4 Surplus Round Super
我尝试过类似的
mydb.Type.findAll({
include: [
{
model: mydb.Master,
include: [
{
model: mydb.Config,
where: Sequelize.where(Sequelize.fn('FIND_IN_SET', mydb.Master.ID, Sequelize.col('MasterIds')), '>', 0)
}
]
}
]
})
它不起作用并引发错误SequelizeEagerLoadingError:配置未与Master关联
我是Sequelize的新手,因此无法使用Sequelize.js语法为上述选择查询找到更多解决方案。