私は2つのテーブルを持っています
表 1 はドキュメントのリストです。
ドキュメント:
+-------------+---------------+
| document_ID | document_name |
+-------------+---------------+
| 1 | test.pdf |
+-------------+---------------+
| 2 | other.pdf |
+-------------+---------------+
表 2 は、その文書を使用したユーザーのリストです。これは 1 対 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」コマンドにあることがわかりますが、どうすればよいかわかりません。