我正在尝试使用存储库编写此查询
const d = await getManager().query(`SELECT exam.fiscal_code, exam.exam_id, exam.exam_date, exam.diagnosis
FROM exam INNER JOIN patient ON exam.fiscal_code = patient.fiscal_code
WHERE exam.doctor_id = ${req.user.doctorId} AND patient.name =${req.body.name} AND patient.surname =${req.body.surname}`)
答案 0 :(得分:0)
_c您应该首先阅读the documentation,因为它非常清楚如何实现。
首先,您需要按照文档中的说明用@ManyToOne
或@ManyToMany
装饰属性。
然后只需使用提供的方法来编写查询:
await createQueryBuilder('exam')
.innerJoinAndSelect('exam', 'exam.patient', 'exam.fiscalCode = patient.fiscalCode')
.where(...)
或者,如果您正确装饰了属性并提供了反向关系,则可以执行以下操作:
await createQueryBuilder('exam')
.innerJoinAndSelect('exam.fiscalCode', 'fiscalCode')
.where(...)
下次,您应该提供对代码的更精确的描述,以便人们可以更好地了解您的工作并给出更精确的答案。因为不仅有一种做事的方法。
请注意,对于innerJoinAndSelect
方法中的列,我使用了 camelCase 而不是 snake_case 。这是因为TypeORM需要Javascript属性的名称,而不是SQL属性的名称。我不知道您是否用这种方式命名,但您还是应该这样。