MySQL 跨库关联查询 (创建视图)
一, 前言
SQL CREATE VIEW 语句
什么是视图?
在 SQL 中, 视图是基于 SQL 语句的结果集的可视化的表.
视图包含行和列, 就像一个真实的表. 视图中的字段就是来自一个或多个数据库中的真实的表中的字段. 我们可以向视图添加 SQL 函数, WHERE 以及 JOIN 语句, 我们也可以提交数据, 就像这些来自于某个单一的表.
二, 使用场景:
我们使用的场景是: 我们使用的是微服务架构, 考虑的是模块划分, 分为了业务配置服务, 基础服务, 业务服务等模块, 数据库也进行了拆分, 不同的模块使用不同的数据库. 由于微服务的划分, 导致, 一些查询, 需要跨模块表与表之间的关联查询, 设计到跨库.
三, 跨库创建视图语法:
创建视图:
create view 视图名称 as ( SELECT 库名. 表名. 列名 AS 列的重命名..... FROM 库名. 表名)
删除视图:
drop view 视图名称
注意: 数据库必须在同一个服务器上. 两个库用户名和密码需要相同.
四, 跨库创建视图语句:
CREATE ALGORITHM=UNDEFINED DEFINER=root@localhost SQL SECURITY DEFINER VIEW ray_gt_business_project_document_view AS (select d.id AS id,d.form_id AS form_id,d.invest_id AS invest_id,d.invest_name AS invest_name,d.project_stage_id AS project_stage_id,d.project_stage_name AS project_stage_name,d.is_use AS is_use,d.remark AS remark,d.is_deleted AS is_deleted,b.file_name AS file_name,b.file_type AS file_type,b.is_require AS is_require from (rayootech_business.ray_business_project_document d join rayootech_business.ray_business_project_document_branch b on((d.id = b.project_document_id))))
五, 执行结果:
image.PNG
跨库创建视图成功:
image.PNG
注: 欢迎留言, 沟通学习, 共同进步.
来源: http://www.jianshu.com/p/6ae84c22b3f2