我有3个表A,B,C。表B和C在表A中将其ID作为FK。这是1 3456542 5 may 2014
2 1245678 4 may 2014
3 4256876 2 may 2014
4 5643156 6 may 2014
.....
,bId
。表C也是表B中的FK。我正在尝试查询,外连接3并计算A中的列cId
。以下是我的查询。
cId
我的查询失败并抛出错误, models.A.findAll({
attributes: ['cId', sequelize.fn('COUNT', sequelize.col('cId')), 'total'],
include: [{ model: models.B, attributes: ['cId','Item']}, { model: models.C, attributes: ['ImageUrl'] } ],
group: ['cId']
}).then(function(collection){
res.send(collection);
});
不明确。我认为因为列cId在A和B都是FK。请问我该如何实现?任何帮助,将不胜感激。
更新
我将查询更新为
column cId
错误似乎已经消失。但是,会出现另一个错误,指出models.A.findAll({
attributes: ['A.cId', sequelize.fn('COUNT', sequelize.col('A.cId')), 'total'],
include: [{ model: models.B, attributes: ['cId','Item']}, { model: models.C, attributes: ['ImageUrl'] } ],
group: ['A.cId']
}).then(function(collection){
res.send(collection);
});
必须出现在组中。当我检查sequelize返回的查询时,我注意到它返回A.id,B.id,C.id amng我没有要求的属性。请问我错过了什么?我哪里错了?