作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
SELECT * FROM city WHERE id in
(SELECT distinct(id) FROM city c WHERE id in
(SELECT city_id from address WHERE id in (SELECT address_id FROM maintener)));
我试图只获取在我的维护者地址模型中有引用的城市。也就是说,如果我的城市表中有 200 个城市,但维护者表中只引用了 40 个城市,那么我只需要在城市过滤器中显示 40 个城市。
我的持久 sqlalchemy 中有这个模型
class Maintener(persist.Base):
__tablename__ = 'maintener'
id = Column(Integer, primary_key=True)
name = Column(String(255))
address_id = Column(ForeignKey(u'address.id'), index=True)
address = relationship(u'Address', lazy='noload', \
primaryjoin='Maintener.address_id == Address.id')
class Address(persist.Base):
__tablename__ = 'address'
id = Column(Integer, primary_key=True)
state_id = Column(ForeignKey(u'state.id'), index=True)
city_id = Column(ForeignKey(u'city.id'), index=True)
state = relationship(u'State', primaryjoin='Address.state_id == State.id', lazy='noload')
city = relationship(u'City', primaryjoin='Address.city_id == City.id', lazy='noload')
class City(persist.Base):
__tablename__ = 'city'
id = Column(Integer, primary_key=True, server_default=FetchedValue(), autoincrement=False)
name = Column(String(200))
state_id = Column(ForeignKey(u'state.id'), index=True)
state = relationship(u'State',
primaryjoin='City.state_id == State.id', \
backref=backref(u'cities', lazy='noload'), lazy='noload')
如果有人能帮助我,我将不胜感激
最佳答案
简单一点的版本:
SELECT *
FROM city
WHERE id in (
SELECT a.city_id
FROM address a
JOIN maintener m on m.address_id=a.id
)
关于mysql - 如何在 sqlalchemy 中进行此查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46895543/
我是一名优秀的程序员,十分优秀!