Тема: Допоможіть критикою SQL запиту
Для ясності - я не програміст (3 роки юридичної практики), тому сподіваюсь на конструктивну критику.
В процесі створення проекту виникла необхідність виконувати такий запит:
SELECT tour_name, tour_variant_price, 
GROUP_CONCAT( DISTINCT exp_travel_tour_date.tour_date_date ORDER BY tour_date_date ASC ) AS tour_dates
FROM exp_travel_tours
  LEFT JOIN exp_travel_tour_date ON tour_id = tour_date_tour_id
  LEFT JOIN exp_travel_tour_variants ON ( tour_id = tour_variant_tour_id
  AND tour_variant_price = ( 
    SELECT MIN( tour_variant_price ) 
    FROM exp_travel_tour_variants
    WHERE tour_id = tour_variant_tour_id )
  ) 
WHERE tour_date_date > "2013-10-10"
GROUP BY exp_travel_tours.tour_id
ORDER BY tour_variant_price DESC 
LIMIT 10Тестовий результат вибоки:
array(2) {
  [0]=>
  array(3) {
    ["tour_name"]=>
    string(6) "Тур"
    ["tour_variant_price"]=>
    string(3) "180"
    ["tour_dates"]=>
    string(65) "2013-10-14,2013-10-15,2013-10-16,2013-10-17,2013-10-18,2013-10-19"
  }
  [1]=>
  array(3) {
    ["tour_name"]=>
    string(8) "тур 2"
    ["tour_variant_price"]=>
    NULL
    ["tour_dates"]=>
    string(43) "2013-10-22,2013-10-23,2013-10-24,2013-10-25"
  }
}В таблиці буде <= 5000 записів, навантаження на проект максимально 10 запитів в секунду.
Питання: наскільки поганий цей запит?
Bartash: код слід брати у теги [ code ].
