2014-02-10 33 views
0

我的客戶希望以這樣一種方式顯示行,即Name應該在組中,但傳遞日期按升序排列。我們可以通過DATE命令以及按照NAME在Mysql語法中進行分組嗎?

$sql = "select staff.Name, staff.Gender, transferHistory.transferDate from 
staff inner join (transferHistory) on (transferHistory.StaffID=staff.StaffID) 
ORDER by transferHistory.transferDate ASC GROUP by staff.Name"; 
+0

當你的語句似乎沒有使用任何組函數時,爲什麼你想要一個'group by'? –

+1

只需使用2個子句? 'ORDER BY transferHistory.transferDate ASC,staff.Name ASC'? – naththedeveloper

+0

這可以完成,但如果你想要GROUP BY名稱,你可能想要有某種聚合函數,比如MAX,SUM等。GROUP BY的目的是什麼? –

回答

0

首先,語法是不正確的,首先你必須用你想要的列,在這種情況下,名團,最後你必須訂購的結果......所以,代碼如下:

$sql = "select staff.Name, staff.Gender, transferHistory.transferDate from 
staff inner join (transferHistory) on (transferHistory.StaffID=staff.StaffID) 
GROUP by staff.Name ORDER by transferHistory.transferDate ASC"; 
+0

由於GROUP BY中缺少SELECT中的某些非聚合列,因此可能會返回意外的結果。一般來說,在沒有任何聚合函數的情況下,我認爲最好避免使用GROUP BY。 – Strawberry

相關問題