我有一个包含用户的 PostgreSQL 表,一个包含文档的 PostgreSQL 表,以及一个将用户映射到他们已阅读的文档的表。像这样:
表:用户
------------
| oid |
| username |
| ... |
------------
表:文件
------------
| oid |
| title |
| ... |
------------
表:users_documents
-----------------
| oid |
| user_oid |
| document_oid |
-----------------
每当用户阅读文档时,都会向 users_documents 添加一条记录,其中包含他们的用户 ID 和文档 ID。这一切都很好。
我想做的是为给定用户选择一个随机的未读文档。我觉得我应该能够通过一个相当简单的 JOIN 来做到这一点,但我无法完全理解查询应该是什么样子。
有人可以帮忙吗?谢谢。