Flask SQLAlchemy outerjoin有三个表

时间:2018-05-22 23:25:46

标签: python sqlalchemy flask-sqlalchemy

我正在尝试使用SQLAlchemy中的 outerjoin()来连接三个表,但是当我尝试查询时,我认为它应该正常工作会引发以下错误:

1054, "Unknown column 'articles.id' in 'on clause'"

我确信它可以通过使用ORM引用以更简单的方式完成,但目前我正试图弄清楚如何在没有它的情况下完成这项工作。

以下是表格和查询。我还从SQLAlchemy

导入和_
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()

有没有人碰到这个或者可能指向我如何看待我做错了什么?

谢谢!

0 个答案:

没有答案