2013-07-10 85 views
1

我在一個php文件中有一個MySQL查詢。我想通過使用'按值ASC排序'從一個表格的列中升序排列結果。但是,當前查詢生成的結果不是按此值排序的,而是表中的另一個值。我認爲這是因爲我的語法錯誤,但我無法解決如何。我一直在努力工作幾個星期,但沒有快樂,任何人都可以幫忙嗎?sqs order by value asc

非常感謝您的回覆。

查詢:

$Find_Query3 = mysql_query("SELECT 
patients.*, 
addobs.*, 
DATE_FORMAT(addobs.datetime, '%d/%m/%Y %H:%i:%s') as dti1, 
(SELECT DATE_FORMAT(MIN(addobs.datetime), '%m/%d/%Y %H:%i:%s') FROM addobs WHERE addobs.mrn = patients.mrn AND addobs.datetime >= lastOkPar.lastDatetime AND addobs.par >= $par AND addobs.hidden != 'yes') as dti2 
FROM addobs 
INNER JOIN patients ON addobs.MRN = patients.MRN 
LEFT JOIN (
SELECT 
addobs.MRN 
, MAX(addobs.datetime) as lastDatetime 
FROM addobs 
WHERE 
addobs.par < $par 
AND addobs.hidden != 'yes' 
GROUP BY addobs.MRN 
) lastOkPar ON lastOkPar.MRN = addobs.MRN 
WHERE 
addobs.datetime = (SELECT MAX(OLAST.datetime) FROM addobs AS OLAST WHERE OLAST.MRN = patients.MRN) 
AND addobs.par >= $par 
AND NOT addobs.hidden = 'yes' 
AND COALESCE(patients.ward,'') != 'dc'  
ORDER by addobs.par ASC, dti2 ASC 

PS目前的結果由誕生,這是從「病人」的一列的日期排序。我不知道它爲什麼選擇這個命令。我確定有邏輯,但我havnt解決了它!

感謝,

馬特

+1

*必須:*了'mysql_ *'功能將已廢棄在PHP 5.5(http://php.net/手動/ EN/faq.databases.php#faq.databases.mysql.deprecated)。不建議編寫新代碼,因爲它將來會被刪除。相反,無論是[MySQLi](http://php.net/manual/en/book.mysqli.php)還是[PDO](http://php.net/manual/en/book.pdo.php)和[是一個更好的PHP開發人員](http://jason.pureconcepts.net/2012/08/better-php-developer/)。 –

+0

平方? wassat呢? – Strawberry

回答

0

試試這個

ORDER by addobs.par , 
(SELECT DATE_FORMAT(MIN(addobs.datetime), '%m/%d/%Y %H:%i:%s') FROM addobs WHERE  addobs.mrn = patients.mrn AND addobs.datetime >= lastOkPar.lastDatetime AND addobs.par >= $par AND addobs.hidden != 'yes')