【发布时间】:2023-03-12 10:18:01
【问题描述】:
这是我的数据库模型。
class Doctor(db.Model):
__tablename__ = 'doctor'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(120), nullable=False)
class Patient(db.Model):
__tablename__ = 'patient'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(120), nullable=False)
class Assignment(db.Model):
__tablename__ = 'assignment'
doctorid = db.Column(db.Integer, ForeignKey('doctor.id'),
unique=False, nullable=False, index=True, primary_key=True)
patientid = db.Column(db.Integer, ForeignKey('patient.id'),
unique=False, nullable=False, index=True, primary_key=True)
created = db.Column(db.DateTime(timezone=False),
server_default=db.func.now())
我想列出分配了少于 3 名(可能是用户指定的N)患者的所有医生。
分配使用 ForeignKey 记录在 assignment 表中。
请注意,有些医生可能为零 分配的患者,他们也应该包含在结果中。
我在考虑诸如子查询、GROUP BY 或 OUTER JOIN 之类的东西,但我不知道如何将计数 N 放入其中。
另外,我想从结果中进一步排除分配给某个患者patientid = P1 的所有医生。除了第一个(小于N)条件之外,是否可以这样做?
【问题讨论】:
标签: python sql sqlalchemy