我的情况的简化示例:
我有两个表(一个是2017年的,一个是2018年的),有两列, Category
以及 Cost
.
这两张table可能共用一些 Categories
但他们每个人也可能有一些独特的。
我试图创建一个“主”视图,其中包含两个表之间所有类别的列表。
e、 这就是我所拥有的
Table: 2017_Summary
+------------------+----------+
| Category | Cost |
+------------------+----------+
| Home Improvement | -1000.00 |
| Mortgage | -800.00 |
| Groceries | -500.00 |
| Bills | -400.00 |
| Taxes | -300.00 |
+------------------+----------+
Table: 2018_Summary
+------------------+----------+
| Category | Cost |
+------------------+----------+
| Mortgage | -750.00 |
| Groceries | -550.00 |
| Bills | -400.00 |
| Car Payment | -350.00 |
| Taxes | -300.00 |
+------------------+----------+
这就是我想要的:
View: Summary
+------------------+-----------+-----------+
| Category | 2017_Cost | 2018_Cost |
+------------------+-----------+-----------+
| Home Improvement | -1000.00 | 0.00 |
| Mortgage | -800.00 | -750.00 |
| Groceries | -500.00 | -550.00 |
| Bills | -400.00 | -400.00 |
| Car Payment | 0.00 | -350.00 |
| Taxes | -300.00 | -300.00 |
+------------------+-----------+-----------+
我可以找出如何创建包含这些 Categories
这是两个表之间的共同点,但我不知道如何同时包含每个表所特有的内容并进行填充 0.00
为了那些价值观(我也可以填写 NULL
而不是 0.00
如果更容易的话。)
这就是我如何找到包含 Categories
,但这并不是我想要的:
CREATE VIEW SUMMARY (CATEGORY,2017_COST,2018_COST) AS
SELECT A.CATEGORY,A.COST,B.COST FROM 2017_SUMMARY A, 2018_SUMMARY B
WHERE A.CATEGORY = B.CATEGORY;
最后一个问题:如果使用了两个以上的表(例如,还结合了 2016_Summary
table)?
1条答案
按热度按时间w7t8yxp51#
您应该为类别使用一个中间视图(对于某些mysql版本,视图中不允许使用subselect),并为开销使用一对左连接