@v7resspect

Поможете сформировать правильный MySQL запрос?

Доброго времени суток.

У меня возникла проблема, которая убила целый день моей жизни. Но я ее так и не решил. Конечно, может для кого-то это и не проблема, но для меня еще какая.

Есть таблица такой структуры:

bank_id | country | currency | buy | sell | date
-----------------------------------------------------------
1 | 1 | USD | 63.70 | 65.00 | 2016-08-26 23:34
2 | 4 | USD | 63.70 | 65.00 | 2016-08-26 22:33
1 | 5 | USD | 63.70 | 65.00 | 2016-08-26 23:33
3 | 1 | USD | 63.70 | 65.00 | 2016-08-26 21:13
2 | 3 | USD | 63.70 | 65.00 | 2016-08-26 23:23
1 | 4 | USD | 63.70 | 65.00 | 2016-08-26 23:16
2 | 5 | USD | 63.70 | 65.00 | 2016-08-26 22:15
1 | 2 | USD | 63.70 | 65.00 | 2016-08-26 23:21
3 | 4 | USD | 63.70 | 65.00 | 2016-08-26 22:11
2 | 1 | USD | 63.70 | 65.00 | 2016-08-26 19:33

Как сформировать запрос, чтобы вывести строки соответствующие условиям: country = 1, currency = USD, date = самая последняя, чтобы не повторялись банки, чтобы вывелся актуальный курс именного в городе с id 1, в валюте USD.
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `v`.* 
  FROM (
    SELECT `bank_id`, MAX(`date`) AS `date`
      FROM `table`
      WHERE `country` = :country_id AND `currency` = :currency_code
      GROUP BY `bank_id`
  ) AS `d`
  JOIN `table` AS `v` 
    ON `v`.`country` = :country_id AND `v`.`currency` = :currency_code
      AND `v`.`bank_id` = `d`.`bank_id` AND `v`.`date` = `d`.`date`
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы