查询一对多关系的两个表

Query two tables with one to many relationship

我正在使用两个具有一对多关系的 Postgres table。主要 table 称为用户,另一个 table 称为文件。

用户 table 有以下列:

id SERIAL PRIMARY KEY,
email VARCHAR(128) NOT NULL,
username VARCHAR(128) UNIQUE NOT NULL,
password_hash VARCHAR(128) NOT NULL

文件 table 有以下列:

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)

对于获取所有文件的查询,我想对其进行调整,以便我也获得与每个文件关联的用户名。我应该如何调整我的执行语句来实现这一点?

尝试以下操作。我知道这种语法适用于其他 dbms':

cur.execute('SELECT f.*, u.username from files as f, users as u where u.id = f.user_Id)