Home >Backend Development >PHP Tutorial >求助版主 简单问题

求助版主 简单问题

WBOY
WBOYOriginal
2016-06-23 14:20:53849browse

表A                                                                   表B
id                   value                         id                                    value
20120101      120                        20120101                           10
20120201      100                        20120304                             5
20120301       90                         20120401                            6
20120401       72                         20120501                           7
20120501       45                         20120601                           16
20120601       75                          20120701                          80
20120701        60                         20120901                          15

两个表。  id 相同 value 相加 并按id 循环输出。怎么写。真心求助啊!


回复讨论(解决方案)

select id , sum(value)
(
  select * from A 
   union all
  select * from B
) t
group by id;

如果上面的 两个表 是我sql 语句检索出的两条记录呢。需要按相同id的项相加 不相同的不加。 并按id 循环输出

不懂你的意思,上面的语句试过了吗。

嗯 这样写 是可以的。 但我现在是执行两条sql 语句 取得上面的值 ,然后循环输出。 按id 倒叙 导致相加对应不上。用的是while 循环 。 
while($date=mysql_fetch_array($sql)){
$aa=mysql_fetch_array($query)  
$bb=mysql_fetch_array($querys)

echo  $aa[1]+$bb[1];

}这样输出的话 因为我$query $querys 语句是按时间倒叙,当第二个结果集多数据或第一个少数据的话就导致对应不上。只是按倒叙相加 就不准确了。 想解决这个。

为什么要取两次,用我哪个sql不就可以了。

两表链接,用子查询

1.左连接
2.字段相加
3.having查询


你的两条sql,可否写成一条,同时返回结果集。
select sum(A.value+B.value),A.value,B.value 
from A left join B on A.id=B.id group by A.id

你的两条sql,可否写成一条,同时返回结果集。
select sum(A.value+B.value),A.value,B.value 
from A left join B on A.id=B.id group by A.id
还有不相同的id也要输出、

select sum(A.value+B.value),A.value,B.value 
from A left join B on A.id=B.id group by A.id

你再union all A.B表 试试

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn