Статус:
Offline
Реєстрація: 16.08.2014
Повідом.: 299
Реєстрація: 16.08.2014
Повідом.: 299
- 🟠 23:02 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
- #1
Комбинированный SQL запрос
Приветствую. Есть небольшой затык в SQL запросе. Выборка идет из PHP/MySQL. Задача состоит в том, что есть список переписок между заказчиками и клиентами. Нужно собрать все в папку "В работе" (type = 2). Пока вывожу так:
Проблема в том, что я хочу сортировать список по полю date_added->(TIMESTAMP) , но не хочу делать тучу однотипных SQL запросов в цикле.
upd Мне нужна только дата последнего сообщения по каждой переписке, всунуть что-то вроде
Приветствую. Есть небольшой затык в SQL запросе. Выборка идет из PHP/MySQL. Задача состоит в том, что есть список переписок между заказчиками и клиентами. Нужно собрать все в папку "В работе" (type = 2). Пока вывожу так:
Код:
#` Список всех сделок, в которых есть моё участие
$sql = "SELECT DISTINCT M.`id_deal`, D.`id_owner` FROM `messages` M LEFT JOIN `deals` D ON D.`id`=M.`id_deal` WHERE (M.`id_whom`='${my_id}' OR M.`id_from`='${my_id}') and M.`type`='2'";
$DbRes = DB::run($sql);
if ( empty($DbRes) ) return done(Env::stor($this->iam, 'board', 'Нет сообщений!'));
foreach ( $DbRes as $row => $Line ) {
$is_owner = ( $Line['id_owner'] == $my_id );
$id_deal = $Line['id_deal'];
if ( $is_owner ) {
#` Моя задача, кому я писал по этой сделке?
$sql = "SELECT DISTINCT `id_whom` as `sender`, `id_deal` FROM `messages` WHERE `type`='2' AND `id_from`='${my_id}' AND `id_deal`='${id_deal}'";
} else {
#` Чужая задача, кто ответил мне по заявке?
$sql = "SELECT DISTINCT `id_from` as `sender`, `id_deal` FROM `messages` WHERE `type`='2' AND `id_whom`='${my_id}' AND `id_deal`='${id_deal}'";
}
}
upd Мне нужна только дата последнего сообщения по каждой переписке, всунуть что-то вроде
Код:
ORDER BY `date_added` DESC LIMIT 1
Останнє редагування: