|
|
|
|
SELECT e.`client_id` AS `pacient_id`,e.id AS event_id,e.externalId,c.lastName,c.patrName,c.firstName,c.birthDate,
(SELECT `value` FROM ActionProperty_OrgStructure WHERE id =
(SELECT id FROM ActionProperty AS ap WHERE action_id = (
SELECT `id` FROM `Action` WHERE `event_id` =e.`id` AND actionType_id={$actionType_id} ORDER BY `begDate` DESC LIMIT 1
)
AND EXISTS (SELECT id FROM ActionPropertyType WHERE name='Отделение пребывания' AND id=ap.type_id)
)
) AS `orgStructure_id`
FROM `Action` AS a
INNER JOIN (`Event` AS e,Client AS c) ON (e.id = a.event_id AND c.id = e.client_id)
WHERE a.`actionType_id`= {$actionType_id} AND a.`endDate` IS NULL
|
место долгой работы - получение orgStructure_id, если без этого - время выполнения около 0.006 сек., а с получение orgStructure_id - около 0,6 секунды. При этом используемые ORDER и LIMIT в запросах получения orgStructure_id важны для получения нужного значения.
или есть попроще запрос:
SELECT e.`client_id` AS `pacient_id`,e.id AS event_id,e.externalId,c.lastName,c.patrName,c.firstName,c.birthDate,
(SELECT `person_id` FROM `Action` WHERE `event_id` =e.`id` AND actionType_id={$actionType_id} ORDER BY `begDate` DESC LIMIT 1) AS person_id
FROM `Action` AS a
INNER JOIN (`Event` AS e,Client AS c) ON (e.id = a.event_id AND c.id = e.client_id)
WHERE a.`actionType_id`= {$actionType_id} AND a.`endDate` IS NULL ORDER BY orgStructure_id DESC
|
Тут проблемное место получение person_id, возможно ли его включить в основной запрос выборки с сохранением условий!? | |
|
|
|
|
|
|
|
для: serenya1983
(03.05.2012 в 08:34)
| | Зачем пихать в запрос вложенные запросы если они по сути не используются в основном запросе?
Отдельно
(SELECT `value` FROM ActionProperty_OrgStructure WHERE id =
(SELECT id FROM ActionProperty AS ap WHERE action_id = (
SELECT `id` FROM `Action` WHERE `event_id` =e.`id` AND actionType_id={$actionType_id} ORDER BY `begDate` DESC LIMIT 1
)
AND EXISTS (SELECT id FROM ActionPropertyType WHERE name='Отделение пребывания' AND id=ap.type_id)
|
Сколько выполняется по времени?
Для полноценного ответа на ваш вопрос, нужен детальный анализ структуры таблиц
например почему поле event_id имеет тип varchar? И я так подозреваю не только одно оно. | |
|
|
|