我有两张有这些列的表(我只显示那些令人陶醉的):
tasks table
+----+------+
| id | todo |
+----+------+
| 1 | 0 |
| 2 | 1 |
| 3 | 1 |
| 4 | 0 |
| 5 | 1 |
+----+------+
entries table
+----+---------+---------+------+
| id | task_id | user_id | done |
+----+---------+---------+------+
| 1 | 3 | 1 | 1 |
| 2 | 5 | 2 | 1 |
| 3 | 5 | 1 | 1 |
| 4 | 2 | 1 | 0 |
+----+---------+---------+------+我查询这些表,并且只保留tasks在todo = 1中的位置,因此我已经在一个PHP中获得了数据。
然后,我有两个用户可以查看的列表:要执行的任务和归档的任务(完成)和要执行的任务。我可以生成第一个列表,如果每个任务和条目具有匹配的task_id ( user_id == $loggeduser && done == 1 ),则循环遍历它们,并取消不匹配任务和条目的索引。但是,我找不到逻辑来处理我的归档列表,因为我没有要匹配的条目。我如何循环我的任务,并且只为用户保留已完成的任务?在本例中,对于用户1的归档列表,我只保留任务id 3和5,而对于用户2,只保留任务id 2。
谢谢。
发布于 2013-10-22 13:03:37
您可以使用普通SQL来完成所有这些工作(我想您使用的是一些关系数据库)。
这个查询为您提供了"todo & done“的所有任务。若要使任务"todo & not“,只需将"e.done = 1”更改为"e.done = 0“即可。我相信你会明白的。
SELECT * FROM tasks t
INNER JOIN entries e ON t.id = e.task_id
AND e.user_id = [logged_user_id]
AND e.done = 1
WHERE
t.todo = 0https://stackoverflow.com/questions/19518176
复制相似问题