普通查询或序列查询

时间:2019-05-13 12:48:45

标签: mysql sequelize.js

我有两个桌子。

表1 具有usernamedesignationreport to,其中一些用户向同一表中的一个用户报告,而他们的designation在该表中由id提及。 designation name存储在名为designations的其他表中。

我需要上面的响应..如何通过原始查询或sql查询来实现它。

private dataInfo2 = {
'name': 'Kathir',   
'designation':'teamlead',
    'children': [
     {
     'name': 'shift 1',
  designation: empolyee
     },
    {
    'name': 'shift 2',
 designation:employee
   },
]
};

1 个答案:

答案 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
});