我有两个桌子。
表1 具有username
,designation
和report to
,其中一些用户向同一表中的一个用户报告,而他们的designation
在该表中由id
提及。 designation
name
存储在名为designations
的其他表中。
我需要上面的响应..如何通过原始查询或sql查询来实现它。
private dataInfo2 = {
'name': 'Kathir',
'designation':'teamlead',
'children': [
{
'name': 'shift 1',
designation: empolyee
},
{
'name': 'shift 2',
designation:employee
},
]
};
答案 0 :(得分:0)
假设您问题中的table1称为Employee,则查询将获取所有雇员以及向其报告的每个雇员的查询。
SELECT manager.name, manager.designation, employee.name, employee.designation
FROM employee as manager
INNER JOIN employee as employee
ON managers.id = employees.reportsToEmployeeId
您将不得不在后端将SQL响应解析为JSON。
在Sequelize中,查询看起来像这样
Employee.hasMany(Employee, {
as: 'children',
foreignKey: 'reportsToEmployeeId'
});
const managersIncludingEmployees = models.Employee.findAll({
include: models.Employee
});