如何使用 SQL 永久连接两个表?

Posted

技术标签:

【中文标题】如何使用 SQL 永久连接两个表?【英文标题】:How to join two tables permanently with SQL? 【发布时间】:2011-11-27 07:23:29 【问题描述】:

是否可以永久连接两个表?我将在哪里执行一次该查询,然后即使我退出 DBMS,它也可以自动加入?

【问题讨论】:

【参考方案1】:

您可能想考虑创建一个view。

视图本质上是一个存储的 SQL 语句,您可以像查询表一样查询它。

create view MyView as
    select TableA.Field1, TableB.Field2
    from TableA
    join TableB on TableB.ID = TableA.ID


select *
from MyView

【讨论】:

在那之后?就是这样?我不打算更新了吗?或者其他的东西?因为我正在做一个 JDBC 项目,我不想在每次查找一些数据时都继续使用 join 子句 我可以加入/查看超过 2 个表吗?因为我有一张员工表,个人信息和联系信息 @user962206 是的,是的。您可以加入任意数量的表格。 另外,如果您没有加入 Primary Key,您可能需要创建 indexes 来备份视图中的加入 我要用主键加入他们。因为这是我所知道的最简单的事情【参考方案2】:

如果您总是同时写入并从连接中读取,则可以将它们合并为一个,然后仅从该连接中写入和选择。

--==[ before ]==--
insert into user (id, name) values (1, "Andreas");
insert into email (id, email) values (1, "andreas - at - wederbrand.se");

select user.id, user.name, user.email from user, email where user.id = email.id;

--==[ do the merge ]==--
create table user_with_email select user.id, user.name, user.email from user, email where user.id = email.id;

drop table user;
drop table email;

--==[ after ]==--
insert into user_with_email id, name, email values (2, "Bruce", "Bruce - at - springsteen.com");

select id, name, email from user_with_email;

【讨论】:

以上是关于如何使用 SQL 永久连接两个表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 spark sql 中创建永久表

如何在sql中交叉连接两个表

如何在 PL/SQL 中连接两个表而不创建新表

如何在 SQL 中通过多列连接两个表?

如何将表连接在一起 - SQL

如何使用3表连接zend / sql获取对象列表?