有两个表:
表格汽车
id | date
----------
1 | 2012-01-04
2 | 2012-01-04
3 | 2012-01-05
表版本
id_car | year | author
-------------------------
1 | 2005 | John
1 | 2001 | Carl
2 | 2003 | Carl
2 | 2001 | John
3 | 2004 | Carl
3 | 2003 | John
如果作者是 Carl,我需要获取有关昨天 (2012-01-04) 汽车的所有信息以及有关其最新版本的信息。
所以在这个例子中我需要得到: <强>2 | 2012-01-04 | 2003 |卡尔
最佳答案
你想要一个内部联接
:
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'
在此查询中,您是说,“从日期为 2012-01-04
的 cars
中获取所有内容,然后在 versions 中查找所有内容
其中 id_car
列等于我在 cars
中的 id
列。哦,只给我 versions 的任何东西
作者是 Carl
,但只有汽车年份等于可用汽车的最伟大年份。”
关于mysql - 来自 2 个表的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8745534/