2014-01-16 4 views
0

다양한 테이블에서 행을 가져와 합계 연산을 수행하는 방법은 무엇입니까? 예 표를 들면mysql에서 여러 테이블의 값을 가져 오는 방법은 무엇입니까?

: 트리

------------------- 
id  name  
------------------- 
1   tree1  
------------------- 
2   tree2  
------------------- 
3   tree3  
------------------- 
4   tree4  
------------------- 

표 2 :

-------------------------------- 
tree_id  name  value 
-------------------------------- 
1    test1   5 
-------------------------------- 
1    test2   3 
-------------------------------- 
2    test3   7 
-------------------------------- 
4    test4   9 
-------------------------------- 

원하는 출력 :

select tree.id,tree.name,sum(leaf.value) as total from tree,leaf where leaf.tree_id=tree.id 

Array([0] => Array([id]=>1, [name]=>tree1, [total]=>8), 
[1] => Array([id]=>2, [name]=>tree2, [total]=>7) 
[2] => Array([id]=>3, [name]=>tree3, [total]=>0) 
[3] => Array([id]=>4, [name]=>tree4, [total]=>9)) 
+0

JOIN, INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN 및 CROSS JOIN을 살펴보십시오. –

답변

0
SELECT tree.id, tree.name, sum(leaf.value) as total 
FROM tree 
LEFT JOIN leaf 
    ON leaf.tree_id = tree.id 
GROUP BY tree.id 
0
SELECT tree.id, tree.name, sum(leaf.value) as total 
FROM tree 
left join leaf 
    ON leaf.tree_id = tree.id group by tree.id 
관련 문제