如何创建一个视图,从子表中的父表(id
,name
)和总和返回列?
我有两张桌子:
table 'parent':
| id | name |
| 1 | foo |
| 2 | bar |
table 'child':
| id | parent_id | unit_price | quantity |
| 1 | 1 | 25 | 2 |
| 2 | 1 | 10 | 5 |
| 4 | 2 | 50 | 2 |
| 5 | 2 | 100 | 4 |
视图如下所示:
| parent_id | name | total |
| 1 | foo | 100 |
| 2 | bar | 500 |
不确定它对视图是否有用,但parent_id是外键。
或者在这种情况下使用触发器会更好吗?
答案 0 :(得分:1)
尝试使用联接创建视图以查找总和:
CREATE VIEW yourView AS
SELECT
p.id AS parent_id,
p.name,
SUM(COALESCE(c.unit_price * c.quantity, 0)) AS total
FROM parent p
LEFT JOIN child c
ON p.id = c.parent_id
GROUP BY
p.id, p.name;