我已經使用PHP解決了這個問題,但是我知道如果我可以爲它做一個查詢,速度會更快。我有以下2個表格。僅從連接表中選擇第一條記錄,其中條件爲
projects:
+------------+--------------+
| project_id | project_name |
+------------+--------------+
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
+------------+--------------+
tasks:
+------------+------------+-------------+---------------------+
| project_id | task_id | task_status | task_due_timestamp |
+------------+------------+-------------+---------------------+
| 1 | 1 | 1 | 2015-01-01 12:00:00 |
| 1 | 2 | 2 | 2015-01-02 12:00:00 |
| 2 | 3 | 3 | 2015-01-03 12:00:00 |
| 3 | 4 | 1 | 2015-01-04 12:00:00 |
+------------+------------+-------------+---------------------+
我需要一個查詢,將選擇與具有1或2狀態的情況下選擇任務必須是最近的一個及其相關的任務中的所有項目。見下表。
records after query:
+------------+--------------+------------+-------------+---------------------+
| project_id | project_name | task_id | task_status | task_due_timestamp |
+------------+--------------+------------+-------------+---------------------+
| 1 | a | 1 | 1 | 2015-01-01 12:00:00 |
| 2 | b | null | null | null |
| 3 | c | 3 | 3 | 2015-01-01 12:00:00 |
| 4 | d | null | null | null |
+------------+--------------+------------+-------------+---------------------+
正如你所看到的,項目2不應該有任務,因爲任務狀態是2.而項目4沒有項目。項目1有2個任務,但最早的一個是早一天。
任何幫助將不勝感激。
你如何讓2015年1月1日12:00:00的記錄,而不是2015年1月2日12:00:00? – HaveNoDisplayName
您必須使用MAX運算符獲取最近的任務,然後使用JOIN將任務與項目合併。使用WHERE選擇狀態1 OR 2 – Darkwing