sql语句,如何在select里返回多表查询的所有列

问题:有两个表,a表记录了产量,b表记录了用料量。
a表结构如下:
---------------------------------
id 班次 产量
-------------------------------
1 1班 100
2 2班 110
3 1班 120
4 2班 130
-------------------------------

b表结构如下:
---------------------------------
id 班次 用料量
-------------------------------
1 1班 10
2 2班 11
3 1班 12
4 2班 13
-------------------------------

现在想用一条sql语句得到如下这样一个结果集:
----------------------------------------------------------------------
a.id a.班次 a.用料量 b.班次 b.产量
---------------------------------------------------------------------
1 1班 22 1班 220
2 2班 24 2班 240
--------------------------------------------------------------------
就是相当于a表group by了班次,b表再group by了班次,但是再怎么整合到一个结果集?

第1个回答  2014-04-11
SELECT     b.z, b.x, a.z, a.x
FROM         (SELECT     班次 AS z, SUM(用料量) AS x
                       FROM          b AS b_1
                       GROUP BY 班次) AS b INNER JOIN
                          (SELECT     班次 AS z, SUM(产量) AS x
                            FROM          a AS a_1
                            GROUP BY 班次) AS a ON b.z = a.z

 ----实际测试通过

测试结果

1             77    1             44    

2             99    2             66    

第2个回答  2014-04-11
方法

select * from ( select ....from a group by 班次) as A, (select....from b group by 班次) as B
WHERE A.班次=B.班次
如果是多个字段合为主键,那就用and连起来.

应该明白了吧???本回答被提问者采纳
相似回答