Как конвертировать postgreSQL в формат Sequelize - PullRequest
0 голосов
/ 24 мая 2019

Я должен попытаться преобразовать свой sql-запрос postgre в концепцию orm, используя пакет sequelize npm, пожалуйста, помогите мне.

select * from "locationDepartmentMappings" as a
inner join "departments" as b on a."departmentId" = b.id
inner join "locations" as c on a."locationId" = c.id
where (
    b."departmentName" like '%Accounting%' or c."locationName" like '%Accounting%'
)
limit 1;

Согласно приведенному ниже коду, я получаю

ошибка: столбец locationDepartmentMapping.department.departmentName не существует

Как уже упоминал @shivam, я попробовал зависит от моего ниже, можете ли вы внести изменения,

        let ldv = await LocationDepartmentModel.findAll({
          include: [
            {
              model: LocationModel,
              as: "location",
              required: true,
            },
            {
              model: DepartmentModel,
              as: "department",
              required: true,
            }
          ],
          where: {
            $or: [
              {
                "department.departmentName": { like: `%${reqQueryName}%` }
              },
              { "location.locationName": { like: `%${reqQueryName}%` } }
            ]
          },
          limit:1
        });

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Финал с помощью получил решения:

let ldData = await LocationDepartmentModel.findAll({
      include: [
        {
          model: LocationModel,
          as: "location",
          required: true
        },
        {
          model: DepartmentModel,
          as: "department",
          required: true
        }
      ],
      where: {
        $or: [
          { "$department.departmentName$": { like: `%${reqQueryName}%` } },
          { "$location.locationName$": { like: `%${reqQueryName}%` } }
        ]
      },
      limit: 1
    });

Предоставлено ниже:

@ shivam ответ для объединения таблиц

@ManjulSigdel ответ, если условие включает столбец таблицы

0 голосов
/ 24 мая 2019

Sequelize имеет довольно хорошую документацию о том, как писать запросы, используя синтаксис orm. Начнем с того, что приведенный выше запрос будет выглядеть примерно так:

Model.locationDepartmentMappings.findAll({
  include: [
    {
      model: Model.departments
      where: {departmentName: {$like: '% Accounting%'}}
    },
    {
      model: Model.locations
      where: {locationName: {$like: '% Accounting%'}}
    }],
  limit: 1
})

То, что вы должны рассмотреть, чтобы получить вышеупомянутый запрос, является
1. Узнайте, как создать секвелирование моделей
2. Учиться Ассоциации
3. Запрос

Существует множество отличных учебных пособий, которые могут помочь вам начать работу, и это всего лишь поиск в Google!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...