【发布时间】:2018-05-22 23:25:46
【问题描述】:
我正在尝试使用 SQLAlchemy 中的 outerjoin() 来连接三个表,但是当我尝试查询时我认为应该可以正常工作,它会引发以下错误:
1054, "Unknown column 'articles.id' in 'on clause'"
我确信可以通过使用 ORM 引用以更简单的方式完成,但目前我正试图弄清楚如何在没有它的情况下完成这项工作。
下面是表格和查询。我还从 SQLAlchemy 导入 and_
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), index=True, unique=True, nullable=False)
class Articles(db.Model):
id = db.Column(db.Integer, primary_key=True)
article_name = db.Column(db.String(100), unique=True, nullable=False)
class ReadArticles(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
article_id = db.Column(db.Integer, db.ForeignKey('articles.id'), nullable=False)
和查询:
r = db.session.query(Articles, User, ReadArticles).outerjoin(ReadArticles,
and_(User.id == ReadArticles.user_id, Articles.id == ReadArticles.article_id)).all()
有没有人遇到过这个问题或者可以指出如何查看我做错了什么?
谢谢!
【问题讨论】:
标签: python sqlalchemy flask-sqlalchemy