来自2个表的数据

Kor*_* M. 1 mysql sql database

有两个表:

桌上

id | date
----------
1 | 2012-01-04
2 | 2012-01-04
3 | 2012-01-05
Run Code Online (Sandbox Code Playgroud)

TABLE 版本

id_car | year | author
-------------------------
1 | 2005 | John
1 | 2001 | Carl

2 | 2003 | Carl
2 | 2001 | John

3 | 2004 | Carl
3 | 2003 | John
Run Code Online (Sandbox Code Playgroud)

如果作者是Carl,我需要在昨天的日期(2012-01-04)获取有关汽车的所有信息以及有关其最新版本的信息.

所以在这个例子中我需要得到: 2 | 2012-01-04 | 2003年| 卡尔

Eri*_*ric 5

你想要一个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'
Run Code Online (Sandbox Code Playgroud)

在这个查询,你说:"我抓住一切从cars其中的日期2012-01-04,然后找到一切versionsid_car列等于我id在列cars.哦,只给我任何东西,从versions笔者所在的是Carl,但仅限于汽车的年份等于可用汽车的最大年份."