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年| 卡尔
你想要一个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,然后找到一切versions在id_car列等于我id在列cars.哦,只给我任何东西,从versions笔者所在的是Carl,但仅限于汽车的年份等于可用汽车的最大年份."
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |