我有兩個表項和集團用瓶的SQLAlchemy連接到PostgreSQL的數據庫在Python定義:如何使用SQLAlchemy和Flask在兩個表上執行自然連接?
class Entry (db.Model):
__tablename__ = "entry"
id = db.Column('id', db.Integer, primary_key = True)
group_title = db.Column('group_title', db.Unicode, db.ForeignKey('group.group_title'))
url = db.Column('url', db.Unicode)
next_entry_id = db.Column('next_entry_id', db.Integer, db.ForeignKey('entry.id'))
entry = db.relationship('Entry', foreign_keys=next_entry_id)
group = db.relationship('Group', foreign_keys=group_title)
class Group (db.Model):
__tablename__ = "group"
group_title = db.Column('group_title', db.Unicode, primary_key = True)
group_start_id = db.Column('group_start_id', db.Integer)
#etc.
我想這兩個表與自然的結合使用Entry.id
和Group.group_start_id
作爲公共領域的加盟。
我已經能夠查詢所有記錄的單個表。但我想通過外鍵ID連接表,將Group.group_start_id
和Group.group_title
的記錄記錄到特定的Entry
記錄中。
我有
我曾嘗試多種方法砂箱SQLAlchemy的查詢語法或過程中遇到問題(列出幾個):
db.session.query(Group, Entry.id).all()
db.session.query(Entry, Group).all()
db.session.query.join(Group).first()
db.session.query(Entry, Group).join(Group)
它們都返回了大於預期的元組列表,並且不包含我想要的元組。 我在尋找以下結果: (Entry.id, group_title, Group.group_start_id, Entry.url)
我將不勝感激任何幫助。
感謝您的建議!不幸的是,這並不是我正在尋找的。使用pgAdmin中的查詢工具,我可以使用此查詢來獲取我正在查找的表:select * from「group」join「entry」on「group」.group_start_id =「entry」.id;'。我怎樣才能使用SQLAlchemy模型系統來運行?我能夠通過'db.engine.execute'運行原始查詢,並得到我想要的結果,但是它是一個元組而不是字典樣式對象,因爲它是首選。 –
我寫的示例代碼不工作嗎?還是有其他問題嗎? –