我有树桌
ID A
-----------
1 10
ID B
-----------
1 20
2 30
ID C
-----------
2 40
3 50
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉如何制作视图或查询这样的打印件?
ID A B C R (A + B - C)
-----------------------------------
1 10 20 0 30
2 0 30 40 -10
3 0 0 50 -50
Run Code Online (Sandbox Code Playgroud)
提前致谢.
据我所知,MySql中没有完全外连接.因此,要执行您需要的操作,您应该在派生表和左连接原始表中获取不同的ID:
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
Run Code Online (Sandbox Code Playgroud)