Неверный запрос Sequelize - PullRequest
0 голосов
/ 27 мая 2020

У меня есть запрос на продолжение, который не возвращает ожидаемые столбцы.

db.conn.query(
                  " SELECT t1.id, t1.name, t2.name" +                   
                  "   FROM category t1 " +
                  "    LEFT OUTER JOIN parental t2 ON t1.id = t2.id "

Это журнал сиквелизации:

> Executing (default): SELECT t1.id, t1.name, t2.name   FROM category t1
> LEFT OUTER JOIN parental t2 ON t1.id = t2.id

И это таблица результатов:

┌─────────┬────┬──────┐
│ (index) │ id │ name │
├─────────┼────┼──────┤
│    0    │ 1  │ 'L'  │
│    1    │ 2  │ '10' │
│    2    │ 3  │ '12' │

Обратите внимание, что столбец t2.name отсутствует в таблице результатов.

Однако я сделал тот же запрос в рабочей среде mySql и получил третий столбец.

Есть у кого-нибудь представление об этой проблеме?

Заранее спасибо!

1 Ответ

0 голосов
/ 27 мая 2020

Похоже, что sequelize использует карту ключей для загрузки набора результатов обратно в приложение. Вам нужно будет указать разные имена столбцов для всех столбцов.

Например, вы можете изменить первую строку на:

SELECT t1.id, t1.name, t2.name as name2

, чтобы получить все три столбца как id, name и name2 соответственно. Выражение as <alias> назначает псевдоним столбцу или вычисляемому выражению в запросе SQL.

...