これが、mysqlで何をしているのかを知っている誰かにとって簡単な質問になることを願っています。
現在、2つのテーブルがあります。「タスク」と「完了」。
タスク:
taskID | task_name | desciption | deadline
1 | task 1 | do this | 2012-08-11
2 | task 2 | do that | 2012-10-11
3 | task 3 | do the other| 2012-12-31
完了:
taskID | userID | status
1 | 24 | complete
1 | 72 | complete
1 | 15 | late
2 | 41 | complete
2 | 86 | incomplete
3 | 4 | incomplete
3 | 19 | incomplete
締め切り日を過ぎた各タスクを(以下のように)すべて1つのクエリで完了した(時間どおりまたは遅れた)ユーザーの比率を取得しようとしています。
taskID | task_name | description | deadline | completion_ratio
1 | task 1 | do this | 2012-08-11 | 0.66666
2 | task 2 | do that | 2012-10-11 | 0.5
期限が過ぎていないため、タスク3は表示されません。
次のコードは、2つのテーブルを単純に結合し、期限を過ぎたタスクのみを選択しますが、上記の結果を取得する方法を知りたいと思います。
SELECT task.taskID,task.task_name,task.description,task.deadline,completion.status
FROM task
INNER JOIN completion ON task.taskID=completion.taskID
WHERE task.deadline>=CURDATE()
クエリの結果:
taskID | task_name | description | deadline | status
1 | task 1 | do this | 2012-08-11 | complete
1 | task 1 | do this | 2012-08-11 | complete
1 | task 1 | do this | 2012-08-11 | late
2 | task 2 | do that | 2012-10-11 | complete
2 | task 2 | do that | 2012-10-11 | incomplete
どんな助けでも大歓迎です。