copyerfiled
@copyerfiled

Как составить запрос в mysql, который должен обработать данные двух полей?

Здравствуйте!
Немогу понять как это можно сделать и можно ли вобще?

Есть таблица звонков, она состоит из следующих полей:
time (содержит время)
src (номер источник в формате либо 8XXXXXXXXXX либо XXX)
dst (номер назначения в формате либо 7XXXXXXXXXX либо XXX)
desposition (ANSWERED или NO ANSWER)

Нужно понять на какой номер перезванивать, для этого я используя GROUP BY и MAX(time) пробегаюсь по полю src исключаю внутринние номера (те которые XXX ), группирую все одинаковые номера телефонов, в вывод пытаются попасть самые последние записи отобранных номеров, которые отсекаются по desposition и вывожу только те которые NO ANSWER

В итоге получаю в src только те телефоны которые так и не дозвонились, но вот незадача, а что если им уже перезванивали, как мне теперь имея данный результат сравнить его по номеру и времени с полем dst при условии еще, что там форматы номеров разные, в dst начинаются на 7 а не на 8, и выводить только те номера, для которых нет более свежих записей в поле dst со значением desposition - ANSWERED ?
Можно ли вобще такое провернуть одним запросом?

Вот запрос который выводит пропущенные:

SELECT max(time), src, dst, disposition
FROM mytable
where disposition = 'NO ANSWER'
group by src 
order by 1 DESC;
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
T_y_l_e_r
@T_y_l_e_r
Добавить в конструкцию что то типа
NOT IN (SELECT dst ...)
Скорость упадет только, добавите ключи
+ есть готовые функции в мускуле, заменине по регулярке первый символ на другой
phpclub.ru/mysql/doc/string-functions.html
ru.stackoverflow.com/questions/257562/%D0%9F%D0%BE...
Ответ написан
Ваш ответ на вопрос

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

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