Вы хотите inner join
:
select
c.id,
c.date,
v.year,
v.author
from
cars c
inner join versions v on
c.id = v.id_car
inner join (
select
id_car,
max(year) as latestYear
from
versions
group by
id_car
) vmax on
c.id = vmax.id_car
and v.year = vmax.latestYear
where
v.author = 'Carl'
and c.date = '2012-01-04'
В этом запросе вы говорите: «Возьми меня с cars
, где дата 2012-01-04
, а затем найди все в versions
где id_car
столбец равен моему id
столбцу в cars
. О, и дайте мне только что-нибудь из versions
, где автор Carl
, но только там, где год автомобиля равенсамый лучший год автомобиля, который доступен. "