Введите или присоедините карты к table.relation.id вместо table.RelationID

#javascript #mysql #node.js #typescript #typeorm

Вопрос:

Я каким-то образом столкнулся со странной ошибкой, соединяю множество таблиц, подмножество кода, как показано ниже:

 ...

.leftJoinAndSelect('req.steps', 'step')
.leftJoinAndSelect('step.user', 'appUser')
.leftJoinAndSelect('appUser.user', 'appStaff')

...
 

и ошибка, которую я получаю, такова:

 Unknown column 'appuser.user.id' in 'on clause'
 

и в таблице явно есть userId столбец, поэтому странная часть заключается в том, что все остальные столбцы отображаются правильно, подмножество сгенерированного запроса, как показано ниже:

 LEFT JOIN `step` `step` ON `step`.`requestId`=`req`.`id`  LEFT JOIN `step_user` `appUser` ON `appUser`.`id`=`step`.`userId`  LEFT JOIN `user` `appStaff` ON `appStaff`.`id`=appUser.user.id AND (`appStaff`.`deleted` IS NULL)
 

И подраздел сущности:

   @ManyToOne(() => User, user => user.steps)
  user: User;
 

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

Комментарии:

1. Проблема в строке : appStaff.id=appUser.user.id измените на appStaff.id=appUser.userId

2. @ErgestBasha это сгенерированный запрос, просто, пожалуйста, повторите вопрос еще раз и посоветуйте, как я могу внести это изменение

3. Я ничего не знаю о javascript. Я могу сказать, что appUser.user.id это единственный, у которого нет задних палочек. Проверьте в своем скрипте, чем он отличается от других таблиц