Sqlalchemy:查询 - 当所有孩子都满足不平等条件时,只得到父母



我是数据库和sqlalchemy的新手,我正在尝试使用不等式的条件进行查询,但是它总是将父母归还给父母,因为其中一个孩子满足了条件,我需要所有孩子们满足不平等的满足

我的当前表:

class Jefe(Base):
    """ Tabla de jefes"""
    __tablename__ = 'jefe'
    id = Column(Integer, primary_key=True)
    nombre = Column(String, unique=True)
    empleado = relationship('Empleado', backref='jefe', cascade='all, delete-orphan')

class Empleado(Base):
    """ Tabla de empleados"""
    __tablename__ = 'empleado'
    id = Column(Integer, primary_key=True)
    jefe_id = Column(Integer, ForeignKey('jefe.id'), nullable=False)
    nombre = Column(String, unique=True)
    salario = Column(Float)

我的实际查询:

result = Session.query(Jefe).join(Empleado).filter(Empleado.salario > 120).all()

哪个输出是:

Jefe: Yehender carrasco --- id: 1 
 ----------- Empleados
 ----------- nombre: Jesus ramirez --- salario: 150.00 --- id: 1
 ----------- nombre: Erlinda pereira --- salario: 130.00 --- id: 2

Jefe: Kleiver carrasco --- id: 2 
 ----------- Empleados
 ----------- nombre: Jesus carvajal --- salario: 155.00 --- id: 3
 ----------- nombre: Victor araujo --- salario: 135.00 --- id: 4
 ----------- nombre: Cristhiam ochoa --- salario: 105.00 --- id: 9

Jefe: Ivan marquez --- id: 4 
 ----------- Empleados
 ----------- nombre: Eliana ortega --- salario: 145.00 --- id: 7
 ----------- nombre: Sofia marquez --- salario: 133.30 --- id: 8

,我希望第二个结果不出现,因为Cristhiam Ochoa的薪水小于120,例如:

Jefe: Yehender carrasco --- id: 1 
 ----------- Empleados
 ----------- nombre: Jesus ramirez --- salario: 150.00 --- id: 1
 ----------- nombre: Erlinda pereira --- salario: 130.00 --- id: 2

Jefe: Ivan marquez --- id: 4 
 ----------- Empleados
 ----------- nombre: Eliana ortega --- salario: 145.00 --- id: 7
 ----------- nombre: Sofia marquez --- salario: 133.30 --- id: 8

我知道我必须修改过滤条件,以便考虑所有孩子,但我不知道该怎么做

您未正确设置加入。尝试以下操作:

result = Session.query(Jefe).join(Jefe.empleado).filter(Empleado.salario > 120).all()

最新更新