Дося, а вы понимаете, что ваш запрос, равно как и моя модификация, обработает записи только с такими (адулт/чилдрен)прайсами, для которых найдутся записи с обоими введёнными временами (10 и 17 в примере)?
Вам точно именно это надо или что-то другое?
use test;
create table zooprices(adult_price int, children_price int, `[time]` int);
insert into zooprices values (250,0,17),(0,50,10);
-- первый вариант тестовых данных
-- на них этот запрос...
select (10*(z.`adult_price`)) - (23*(z.`children_price`)) as `result`
from `ZooPrices` z
join (
select distinct `adult_price` from `ZooPrices`where `[time]`="17"
) t1 on z.`adult_price`=t1.`adult_price`
join (
select distinct `children_price` from `ZooPrices` where `[time]`="10"
) t2 on z.`children_price`=t2.`children_price`;
-- ...не выдаст ничего
-- а вот на таких
insert into zooprices values (250,50,17),(10,50,10);
-- уже что-то будет
-- но я сомневаюсь, что это будет то, чего вы хотели...