根据三个连接表中的列获取不同的最小值和最大值

时间:2015-04-01 18:52:40

标签: mysql

我想弄清楚汽车制造商生产汽车的最早年份和最近一年。我有以下三个表。这一年只与特定模型相关联,因此我需要将所有三个表连接起来,以便每年与一个品牌相关联。然后我想选择每个品牌的最小和最大年份。

制作表

make_id     make_name
1           Acura
2           Alfa Romeo
3           Aston Martin

模型表

model_id    make_id    model_name
10          1          Integra
11          1          MDX
12          1          Legend
13          2          Milano
14          2          Quadrifoglio
15          3          Rapide

年表

year_id     model_id   year
100         10         1996
101         11         2001
102         12         1992
103         13         1989
104         14         1974
105         15         2013

我想要以下结果:

make_id    make_name       lowest_model_year    highest_model_year
1          Acura           1996                 2001
2          Alfa Romeo      1974                 1989
3          Aston Martin    2013                 2013

1 个答案:

答案 0 :(得分:1)

试试这个:

select 
  make.make_id as make_id,
  make.make_name as make_name,
  MIN(`year`) as lowest_model_year,
  MAX(`year`) as highest_model_year
from make 
  left join model on model.make_id = make.make_id 
  left join year on year.model_id = model.model_id
  group by make.make_id