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

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

【问题讨论】:

    标签: mysql sql join view


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 2022-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 2020-04-19
      • 2015-07-15
      • 2016-01-12
      相关资源
      最近更新 更多