如何从视图表中查询/ SELECT?

时间:2016-06-17 03:16:19

标签: mysql

我创建了一个视图表,我试图从

查询
drop view if exists salesdata;

create view SalesData as
select orders.order_id, items.item_id, (order_details.order_qty *   items.unit_price) as ItemTotal, items.title, artists.artist_id
from orders
join order_details
on orders.order_id = order_details.order_id
join items
on order_details.item_id = items.item_id
join artists
on items.artist_id = artists.artist_id
order by artists.artist_id
;

select * from salesdata;

select artists.artist_id, sum(order_details.order_qty * items.unit_price) as TotalSales
from SalesData;

但是每当我尝试完成查询时

select artists.artist_id, sum(order_details.order_qty * items.unit_price) as TotalSales
from SalesData;

生病得到以下错误

Error Code: 1054. Unknown column 'artists.artist_id' in 'field list'

2 个答案:

答案 0 :(得分:1)

您必须选择视图中描述的字段,请尝试:

select artists.artist_id, sum(ItemTotal) as TotalSales from SalesData;

答案 1 :(得分:0)

视图中的列名不包含create view ... as select语句中的表名前缀,因此在查询视图时不要包含它们:

select artist_id, sum(order_qty * unit_price) as TotalSales
from SalesData;

您还可以使用以下命令在视图中查看列名称:

describe SalesData;