@acspro

Как Выбрать datetime из двух таблиц и сравнить ?

Уважаемы гуру)))
Как Вам такая задачка.
Есть две таблицы. в этих таблицах есть поле modified_id - это поле id менеджера в другой таблице, также есть поле modified - эта дата изменения последнего. Одна из таблиц отвечает за внесение денежных средств, вторая за растрату, эти таблицы содержат совершенно разные поля.
Нужно из двух таблиц выбрать наиболее позднее событие по полю modified вернуть всю строку и fio менеджера, которое содержится в таблице managers по modified_id
Я честно пытался написать хранимую функции (почему то подумал что все таки нужна она, но к сожалению моему - эту битву с Mysql я недостойно проиграл)
Кто то может решить?
  • Вопрос задан
  • 2199 просмотров
Решения вопроса 1
@acspro Автор вопроса
На скорую руку решил так - используя php  и кучу запросов наплодив:
				$lastM=$this->db->squery('SELECT m.*, concat(i.`family`,0x20,i.`name`,0x20,i.`middle`) person FROM `mrequests` m LEFT JOIN `managers` as i ON m.`issued`=i.`id` WHERE m.`visible`=true and m.`status`="issued" and m.`currency`="'.$this->db->filter($k).'" order by m.`issued_dt` desc ');
				$lastP=$this->db->squery('SELECT p.`currency`, p.`created`, p.`amount`,  concat(m.`family`,0x20,m.`name`,0x20,m.`middle`) person FROM `prequests` p LEFT JOIN `managers` as m ON p.`manager_id`=m.`id` WHERE p.`visible`=true and p.`currency`="'.$this->db->filter($k).'" order by p.`created` and `type`=true desc ');

				if (($lastM)&&($lastP)){
				$dtM=new datetime($lastM['issued_dt']);
				$dtP=new datetime($lastP['created']);
					if ($dtM<$dtP){
						$currency[$k]['td'].='<td class="text-left">Пользователь '.trim($lastP['person']).' <strong>пополнил кассу на '.$this->ShowMoney($lastP['amount']).' '.$lastP['currency'].'</strong> '.$this->rusdate($dtP->format('Y-m-d')).' г. в '.$dtP->format('H:i:s').'</td>';
					}else{
						$currency[$k]['td'].='<td class="text-left">Пользователь '.trim($lastM['person']).' <strong>вычел из кассы '.$this->ShowMoney($lastM['amount']).' '.$lastM['currency'].'</strong> '.$this->rusdate($dtM->format('Y-m-d')).' г. в '.$dtM->format('H:i:s').'</td>';
					};
				}elseif($dtM){
						$currency[$k]['td'].='<td class="text-left">Пользователь '.trim($lastM['person']).' <strong>вычел из кассы '.$this->ShowMoney($lastM['amount']).' '.$lastM['currency'].'</strong> '.$this->rusdate($dtM->format('Y-m-d')).' г. в '.$dtM->format('H:i:s').'</td>';
					}elseif($dtP){
						$currency[$k]['td'].='<td class="text-left">Пользователь '.trim($lastP['person']).' <strong>пополнил кассу на '.$this->ShowMoney($lastP['amount']).' '.$lastP['currency'].'</strong> '.$this->rusdate($dtP->format('Y-m-d')).' г. в '.$dtP->format('H:i:s').'</td>';
					}else $currency[$k]['td'].='<td class="text-left"></td>';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы