日期:2014-05-18  浏览次数:20506 次

多表连接
表A
ID   (主键)   名称
1                   CPU
2                   MEMORY
3                   LCD
4                   MOUSE

表B
ID               B数量           单位
1                 12               公斤
1                 5                 箱
2                 10               公斤
2                 15               公斤

表C
ID               C数量           单位
1                 5                 公斤
3                 10               公斤

表D
ID               D数量           单位
1                 10               箱
2                 10               箱
3                 5                 箱

要把四个表连接起来并按单位加总达到下面结果
ID         名称         B数量       C数量       D数量     单位
=====   =======   =======   =======   ======   ====
1           CPU           12             5               0             公斤
1           CPU           5               0               10           箱
2           MEMORY     25             0               0             公斤
2           MEMORY     0               0               10           箱
3           LCD           0               10             0             公斤
3           LCD           0               0               5             箱

我这样写
select   a.*,x.B数量,y.C数量,z.D数量,x.单位   from   a
left   join   (select   id,sum(B数量),单位   from   b   group   by   id,单位)   x   on   a.id=x.id
left   join   (sele