2012-07-10 18 views
5

साथ शामिल हो रहा है पेड़ टेबल(मेरे) एसक्यूएल पूरे तीन टेबल

ID A 
----------- 
1  10 

ID B 
----------- 
1  20 
2  30 

ID C 
----------- 
2  40 
3  50 

किसी को भी कृपया किसी दृश्य या इस तरह क्वेरी प्रिंट बनाने के लिए बता सकते हैं?

ID  A  B  C  R (A + B - C) 
----------------------------------- 
1  10  20  0  30 
2  0  30  40 -10 
3  0  0  50 -50 

अग्रिम धन्यवाद।

+1

आप फिर वहाँ एक 'view' बनाना चाहते हैं कुछ प्रतिबंध हैं। – Lion

+0

ठीक है। 'व्यू 'की आवश्यकता नहीं है। एक त्वरित क्वेरी भी ठीक रहेगी। – TaeL

उत्तर

7

जहां तक ​​मुझे पता है कि MySQL में कोई पूर्ण बाहरी शामिल नहीं है। तो, तुम क्या आवश्यकता है कि आप व्युत्पन्न तालिका में विशिष्ट आईडी हो और मूल तालिकाओं में शामिल होने के लिए छोड़ दिया जाना चाहिए करने के लिए:

select ids.id, 
     ifnull(table1.A, 0) A, 
     ifnull(table2.B, 0) B, 
     ifnull(table3.C, 0) C, 
     ifnull(table1.A, 0) + ifnull(table2.B, 0) - ifnull(table3.C, 0) R 
    from 
    (
    select id 
     from table1 
    union 
    select id 
     from table2 
    union 
    select id 
     from table3 
) ids 
    left join table1 
    on ids.id = table1.id 
    left join table2 
    on ids.id = table2.id 
    left join table3 
    on ids.id = table3.id 
0

प्रयास करें इस

select t1.ID, t1.A,t2.B,t3.C,t1.A+t2.B-t3.C as R 
    from tableA t1 
    full outer join tableB t2 on t1.id =t2.id 
    full outer join tableC t3 on t1.id =t3.id 
0
select coalesce(a.Id, b.Id, c.Id) ID, 
     case when a.A > 0 then a.A else 0 end, 
     case when b.B > 0 then b.B else 0 end, 
     case when c.C > 0 then c.C else 0 end, 
     ifnull(a.A, 0) + ifnull(b2.B, 0) - ifnull(c.C, 0) R 
from tableA a 
right outer join tableB b on a.id = b.id 
right outer join tableC c on b.id = c.id; 
संबंधित मुद्दे