我正在使用两个具有一对多关系的Postgres表。主表称为用户,另一表称为文件。
users表包含以下列:
id SERIAL PRIMARY KEY,
email VARCHAR(128) NOT NULL,
username VARCHAR(128) UNIQUE NOT NULL,
password_hash VARCHAR(128) NOT NULL
files表包含以下列:
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES users(id),
title VARCHAR(128) NOT NULL,
url VARCHAR(128) NOT NULL
当我登录我的应用程序时,我通过执行
查询要显示的所有文件cur.execute('SELECT * from files')
当我想要运行特定用户文件时
cur.execute('SELECT * from files where user_id = %i' % user_id)
对于我提取所有文件的查询,我想调整它,以便获得与每个文件关联的用户名。我该如何定制执行语句来实现这一目标?
答案 0 :(得分:1)
尝试以下方法。我知道这种语法适用于其他dbms':
cur.execute('SELECT f.*, u.username from files as f, users as u where u.id = f.user_Id)