Я использую Alasql для объединения объектов json.
У меня есть этот запрос alasql:
SELECT Employment.*,
EmploymentCore.CompanyCode AS EmploymentCore_CompanyCode,
Accumulator_DaysInAdvance.VacationYearValue AS Accumulator_DaysInAdvance_Value,
Accumulator_AgreementYearlyDays.VacationYearValue AS Accumulator_AgreementYearlyDays_Value,
Person.UserId AS Person_UserId,
FROM ? AS EmploymentCore
RIGHT JOIN ? AS Employment
ON Employment.Id = EmploymentCore.Id
LEFT JOIN ? AS Accumulator_DaysInAdvance
ON Accumulator_DaysInAdvance.WorkNumber = Employment.WorkNumber
AND Accumulator_DaysInAdvance.AccumulatorId = 'b82'
AND Accumulator_DaysInAdvance.AccumulatorType = 'd'
LEFT JOIN ? AS Accumulator_AgreementYearlyDays
ON Accumulator_AgreementYearlyDays.WorkNumber = Employment.WorkNumber
AND Accumulator_AgreementYearlyDays.AccumulatorId = 'b59'
AND Accumulator_AgreementYearlyDays.AccumulatorType = 'n'
JOIN ? AS Person
ON Person.Id = EmploymentCore.PersonId
И у меня есть эти объекты:
- EmploymentCore
- Занятость
- Аккумулятор
- Персона
Аккумулятор является избыточным в запросе.Таким образом, вместо того, чтобы дважды передать объект «Аккумулятор», есть ли способ использовать числа вместо?
Как:
SELECT Employment.*,
EmploymentCore.CompanyCode AS EmploymentCore_CompanyCode,
Accumulator_DaysInAdvance.VacationYearValue AS Accumulator_DaysInAdvance_Value,
Accumulator_AgreementYearlyDays.VacationYearValue AS Accumulator_AgreementYearlyDays_Value,
Person.UserId AS Person_UserId,
FROM $1 AS EmploymentCore
RIGHT JOIN $2 AS Employment
ON Employment.Id = EmploymentCore.Id
LEFT JOIN $3 AS Accumulator_DaysInAdvance
ON Accumulator_DaysInAdvance.WorkNumber = Employment.WorkNumber
AND Accumulator_DaysInAdvance.AccumulatorId = 'b82'
AND Accumulator_DaysInAdvance.AccumulatorType = 'd'
LEFT JOIN $3 AS Accumulator_AgreementYearlyDays
ON Accumulator_AgreementYearlyDays.WorkNumber = Employment.WorkNumber
AND Accumulator_AgreementYearlyDays.AccumulatorId = 'b59'
AND Accumulator_AgreementYearlyDays.AccumulatorType = 'n'
JOIN $4 AS Person
ON Person.Id = EmploymentCore.PersonId