SELECT
DISTINCT SQL_CALC_FOUND_ROWS `produkty`.*
,
CASE
WHEN `produkty`.`cena_prom` < `produkty`.`cena`
AND `produkty`.`cena_prom` > '0'
THEN (
CASE
WHEN (`producenci`.`prowizja` IS NOT NULL AND `kategorie`.`prowizja` IS NOT NULL)
THEN (`produkty`.`cena_prom` * (1 + (`produkty`.`prowizja` / 100) + (`producenci`.`prowizja` / 100) + (`kategorie`.`prowizja` / 100) ))
WHEN (`producenci`.`prowizja` IS NOT NULL AND `kategorie`.`prowizja` IS NULL)
THEN (`produkty`.`cena_prom` * (1 + (`produkty`.`prowizja` / 100) + (`producenci`.`prowizja` / 100) ))
WHEN (`producenci`.`prowizja` IS NULL AND `kategorie`.`prowizja` IS NOT NULL)
THEN (`produkty`.`cena_prom` * (1 + (`produkty`.`prowizja` / 100) + (`kategorie`.`prowizja` / 100) ))
ELSE (`produkty`.`cena_prom` * (1 + (`produkty`.`prowizja` / 100) ))
END
)
ELSE (
CASE
WHEN (`producenci`.`prowizja` IS NOT NULL AND `kategorie`.`prowizja` IS NOT NULL)
THEN (`produkty`.`cena` * (1 + (`produkty`.`prowizja` / 100) + (`producenci`.`prowizja` / 100) + (`kategorie`.`prowizja` / 100) ))
WHEN (`producenci`.`prowizja` IS NOT NULL AND `kategorie`.`prowizja` IS NULL)
THEN (`produkty`.`cena` * (1 + (`produkty`.`prowizja` / 100) + (`producenci`.`prowizja` / 100) ))
WHEN (`producenci`.`prowizja` IS NULL AND `kategorie`.`prowizja` IS NOT NULL)
THEN (`produkty`.`cena` * (1 + (`produkty`.`prowizja` / 100) + (`kategorie`.`prowizja` / 100) ))
ELSE (`produkty`.`cena` * (1 + (`produkty`.`prowizja` / 100) ))
END
)
END AS `cena_correct`
FROM `produkty`
LEFT JOIN `producenci` ON `producenci`.`id` = `produkty`.`producent` LEFT JOIN `kategorie` ON `kategorie`.`id` = `produkty`.`prod_kat`
Czas wykonywania średnio
3 sekundy! i myślę, że przez to przez to serwer mysql wyciąga 100% procesora...
explain:
(IMG:
http://i.imgur.com/sXDv8Su.png)
Proszę o pomoc
Ten post edytował aras785 20.08.2014, 11:11:23