当需要对两个表进行联合查询,在这个联合查询的基础上再进一步筛选时,可以通过建立视图减少大量的工作,同时也提高了数据库查询的效率。
例如:现有user(id,name);
order(id,number,user_id);
两个表,user_id是外键,user表和order表是一对多的关系;
我们需要统计每个user用户的的number字段之和totalNumber,然后依据这个totalNumber再进行筛选,这时候视图的优势就出来了,数据库语句为:
CREATE VIEW user_order
AS
SELECT USER.*,SUM(order.number) AS totalNumber
FROM user JOIN order
WHERE user.id=order.user_id GROUP BY order.user_id
之后的操作直接在user_order里面进行就可以了。