【发布时间】:2021-07-29 16:24:50
【问题描述】:
我有这个在查询工具中测试过的查询,现在我希望将它应用到 Typeorm 语法中
SELECT menu_entry.*, "user_menu".is_bookmark FROM menu_entry
LEFT JOIN "user_menu" ON user_menu.menu_id = menu_entry.id
LEFT JOIN "user" ON "user".id = user_menu.user_id
WHERE "user".id = 1
我尝试过这种方法,但不是 100% 正确:
async findUserBookmarks(request): Promise<any>{
const user: any = await createQueryBuilder(User, 'user')
.leftJoinAndSelect('menu_id', 'menu_entry')
.leftJoinAndSelect('user.id', 'roles')
.where('user.id = :id', {id:1 })
.getMany()
return console.log('user: ', user);
}
【问题讨论】:
-
你为什么使用左连接?原始查询使用的是内连接。
-
你有哪些实体?你也可以提供吗?
-
@ErangaHeshan 用户实体,MenuEntry 实体,是用户和菜单之间的 N:N。