我们可以把多个连接和查询放在视图里,这样可以大大简化我们的选择语句,也可以再次使用这些视图
1,首先举一个很常用的例子
use SQL_invoicing;
select
c.client_id,
c.name,
sum(invoice_total)as tatal_sales
from clients c
join invoices i using(client_id)
group by client_id,name
2,加上,执行之后没有结果,因为我们是创建视图
use SQL_invoicing;
create view sales_by_client as
select
c.client_id,
c.name,
sum(invoice_total)as tatal_sales
from clients c
join invoices i using(client_id)
group by client_id,name
3,刷新SQL_invoicing数据库,可以看到
和表格一样,我们可以在此选择数据,也可以像表格一样用,比如
也可以join其他表
4,但是视图并不存储数据,我们的数据是存储在表格内的
5,练习 命名为clients_balance,clients——balance=每位客户收取的费用和他们支付给我们的金额差。结余的计算方法:invoices表格中的发票余额减支付总额
答案:
SELECT * FROM sql_invoicing.invoices;
create view clients_balance as
select
c.client_id,
c.name,
sum(invoice_total-payment_total) as balance
from invoices i
join clients c using(client_id)
group by client_id,name