> 백엔드 개발 > PHP 튜토리얼 > 求助版主 简单问题

求助版主 简单问题

WBOY
풀어 주다: 2016-06-23 14:20:53
원래의
848명이 탐색했습니다.

表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表 试试

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿