Невнимательно прочитал вопрос,
наверно правильно будет так:
SELECT DISTINCT
prd.id,
prd.name,
prc.min_price,
count(prd.id) as all_products
FROM products prd
LEFT JOIN (
select product_id as prd_id,
min(price) as min_price
from price
group by product_id
) prc on prc.prd_id = prd.id
WHERE prd.color = green
where TIMESTAMPDIFF(YEAR, NOW(), e.hire_date) > 3 - должен быть внутри bas
А вообще я бы сделал наверно так (могут быть ошибки):
select
t1.department_name,
SUM(t4.salary),
MIN(t4.min_salary),
MAX(t4.max_salary)
from departments t1
inner join
(
select salary, min_salary, max_salary
from employees t2
inner join jobs t3 on t3.job_id = t2.job_id
where TIMESTAMPDIFF(YEAR, NOW(), t2.hire_date) > 3
) t4 on t4.department_id = t1.department_id
group by t1.department_name
Вот так?
select
CONCAT(t1."y", '-',t1."m") as yd
,t1."id"
,t1."c"
from
(
select
id_member "id",
YEAR(FROM_UNIXTIME(poster_time)) "y" ,
MONTH(FROM_UNIXTIME(poster_time)) "m" ,
count(*) "c"
from messages
group by id_member, YEAR(FROM_UNIXTIME(poster_time)) ,MONTH(FROM_UNIXTIME(poster_time))
) t1
where t1."y" = '2015'
А этот:
SELECT DISTINCT
prd.id
FROM products prd
WHERE prd.color = green