MySQL视图:如何创建从父表(id,name)返回列的视图以及子表中相关项的总和?

时间:2018-03-28 09:43:51

标签: mysql view

如何创建一个视图,从子表中的父表(idname)和总和返回列?

我有两张桌子:

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是外键。

或者在这种情况下使用触发器会更好吗?

1 个答案:

答案 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;