2013-07-10 5 views
1

У меня есть запрос MySQL в php-файле. Я хочу заказать результаты по возрастанию значений из столбца в одной из таблиц, используя «ORDER по значению 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 сработал!

Спасибо,

Matt

+1

* Обязательно: * The '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

sqs? 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') 
Смежные вопросы