MySQL,两个表显示来自两个表的信息

时间:2014-05-15 07:35:09

标签: mysql sql

我正在学习SQL,我有一个问题。我有两张名为" vehicul"和老板。 第一个表(vehicul)看起来像这样:

   id   nr_vehicul  marca   id_marca    tip     culoare     capacitate_cilindrica
    1   DJ-01-AAA   Mercedes    1       CLK 350 negru       3500
    2   DJ-01-BBB   Mercedes    1       S 500   silver      5000
    3   DJ-01-CCC   Mercedes    1       ML 550  alb         5500
    4   DJ-01-DDD   BMW         2       325     galben      2500
    5   DJ-01-EEE   BMW         2       X5      negru       350

第二个表(proprietate)看起来像这样:

id serie_buletin    cnp        nr_vehicul data_cumpararii pret
1   AK162332    2006036035087   DJ03AAA     2014-05-01  35000
2   AK162332    2006036035087   DJ03BBB     2014-05-02  90000
3   AK176233    6548751520125   DJ03CCC     2014-05-03  55000
4   BZ257743    6548751520125   DJ03DDD     2014-05-04  25000
5   BZ257743    2006036035087   DJ03EEE     2014-05-05  63000

我想显示专栏" marca"从第一个表格和第34列开始,价格"从第二个,但像这样。

 marca   |  pret
Mercedes | 180000
  BMW    |  88000

基本上我有三辆梅赛德斯轿车和两辆宝马轿车,我怎么能一次显示梅赛德斯并且这三辆车的价格总结了?

3 个答案:

答案 0 :(得分:2)

您需要加入两个表格并根据marca字段对其进行分组,并加上pret

select marca, sum(pret)
from table1 as t1, table2 as t2
where t1.id=t2.id
group by marca

我假设id字段正在加入两个表格,(但正如我从您的样本数据中看到的那样,它实际上与其他字段无关)

修改

我认为您遗失了id_marca中的table2字段。如果它在那里它将加入该列,如下例所示:

select marca, sum(pret)
from table1 as t1, table2 as t2
where t1.id_marca=t2.id_marca
group by id_marca;

答案 1 :(得分:1)

使用此请求

select marca, sum(pret)
from vehicul as Ve, proprietate as Pr
where Ve.nr_vehicul=PR.nr_vehicul
group by marca

select marca, sum(pret)
    from vehicul as Ve
    where Ve.id in(select nr_vehicul from  proprietate)
    group by marca

答案 2 :(得分:1)

您的表格不相关,因此无法获得所需的输出。

对于第二个表,我建议添加一个名为id_marca的列,并将每个id_marca的值从第一个表存储到第二个表。因此,对于所有梅赛德斯而言,它的1和第2表也将它存储为1而宝马则存储为2,依此类推。

现在您的表格已关联,您可以加入

select
v.marca
sum(p.pret) as pret
from vehicul v
join proprietate p on p.id_marca = v.id_marca
group by marca