這個問題在歷史上第一次沒有提出,但我還沒有找到任何有用的。假設用戶(A,B,C)可以有更多的任務(清理,維護,編程),任務可以有狀態(啓動,暫停,暫停,完成)。Mysql,只加入第一個連接記錄 - 通過日期
SELECT username,tasks.id,subject,dateat,state FROM users
LEFT JOIN tasks ON tasks.owner_id = users.id
LEFT JOIN tasks_histories ON tasks_histories.task_id = tasks.id
ORDER BY username ASC, subject asc, dateat desc;
select * from tasks_histories;
所以有多個任務狀態,我只需要前,根據「dateat」 - 也許我想第一個或最後一個記錄。我試圖使用GROUP BY username,subject form
,但它不會看dateat排序。
編輯:
假設A沒有任務,B有兩個任務:TASK1一個狀態,TASK2有3個狀態。
所以這個返回它:
user taskid subject dateat state
A null null null null
B 9 task1 2011 5
B 10 task2 null null
B 8 task3 2011 1
B 8 task3 2012 5
B 8 task3 2013 3
但我想它:
A null null null null
B 9 task1 2011 5
B 10 task2 null null
B 8 task3 2011 1
或
A null null null null
B 9 task1 2011 5
B 10 task2 null null
B 8 task3 2013 3
什麼是包含'dateat'表? – 2013-02-17 12:19:38