我是数据库和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()