#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
это единственный, у которого нет задних палочек. Проверьте в своем скрипте, чем он отличается от других таблиц