我有两张桌子
表一是文件清单
文件:
+-------------+---------------+
| document_ID | document_name |
+-------------+---------------+
| 1 | test.pdf |
+-------------+---------------+
| 2 | other.pdf |
+-------------+---------------+
表二是使用过该文档的用户列表。这是一个 1-1 的关系 - 即用户只会使用一次文档(或根本不使用)。
文档用户:
+-------------+---------------+-----------+---------------+
| document_ID | user_ID | has_read | (other stuff) |
+-------------+---------------+-----------+---------------+
| 1 | 5 | 1 | stuff |
+-------------+---------------+-----------+---------------+
| 1 | 7 | 1 | stuff |
+-------------+---------------+-----------+---------------+
| 2 | 5 | 1 | stuff |
+-------------+---------------+-----------+---------------+
当用户浏览列表时 - 我需要能够显示所有文档,以及他们是否可以访问它
因此,例如,上面示例中用户 5 的期望输出是;
+-------------+---------------+-----------+---------------+
| document_ID | document_name | has_read | (other stuff) |
+-------------+---------------+-----------+---------------+
| 1 | test.pdf | 1 | stuff |
+-------------+---------------+-----------+---------------+
| 2 | other.pdf | 1 | stuff |
+-------------+---------------+-----------+---------------+
而用户 7 的期望输出是
+-------------+---------------+-----------+---------------+
| document_ID | document_name | has_read | (other stuff) |
+-------------+---------------+-----------+---------------+
| 1 | test.pdf | 1 | stuff |
+-------------+---------------+-----------+---------------+
| 2 | other.pdf | | |
+-------------+---------------+-----------+---------------+
我尝试按照以下方式进行连接
$this->db->join('documents_users', 'documents_users.document_ID = documents.document_ID');
$this->db->where('documents_users.user_ID', '7');
return $this->get_all();
但这只会返回他们 has_read=1 的记录
我可以看到问题出在“where”命令上——但我不知道该怎么办?