【问题标题】:SQL - Join Two Tables About The Same EntitiesSQL - 连接关于相同实体的两个表
【发布时间】:2011-03-05 01:19:14
【问题描述】:

我创建了两个表,每个表都包含一些关于同一实体的条目。如何编写查询以加入条目并在另一个表中创建统一条目?

抱歉给大家带来了困惑。我应该提供一个简单的例子。

我的两张表如下所示,

表 1:Name, ID, email, city, state, phone
表二:LastName, FirstName, email, gender, ID

【问题讨论】:

  • “关于同一实体”是什么意思?
  • 也许你可以分享结构、代码,任何东西都会很好,并且肯定会帮助提供答案
  • 嗨 Orbit,很抱歉给您带来了困惑。我应该提供一个简单的例子。表 1(姓名、身份证、电子邮件、城市、州、电话) 表 2(姓、名、电子邮件、性别、身份证)
  • 另外请说明您正在使用的 RDBMS 和版本。

标签: sql


【解决方案1】:

我假设 ID 是链接两个表的主键。此查询从每个表中获取选定的列并将它们插入到表 @U3 中。


declare @U3 Table(ID int, FirstName varchar(50), LastName varchar(50),  
                  city varchar(50), [state] varchar(50), phone varchar(50),
                  email varchar(50), gender varchar(50))

insert @U3
  select u1.ID, u2.FirstName, u2.LastName, u1.email,
         u1.city, u1.state,u1.phone, u2.gender
  from Table1 u1 
    join Table2 u2 on u2.ID=u1.ID

select * from @U3

【讨论】:

    【解决方案2】:

    类似:

    INSERT INTO
        c (machine, address)
    (   SELECT
               a.machine, a.address
        FROM
               a
        UNION
        SELECT
               b.machine, b.address
        FROM
               b
    );
    

    【讨论】:

      【解决方案3】:
      INSERT INTO TableC VALUES (SELECT T1.Name,T1.email,T1.city,T1.state,T1.phone,
      T2.Lastname,T2.Firstname,T2.gender FROM Table1 T1 
      LEFT JOIN Table2 T2 ON T1.ID = T2.ID)
      

      表C应该包含表1和表2的join结果集中的所有字段。除了重复的ID/email

      编辑显示所有字段

      【讨论】:

        猜你喜欢
        • 2015-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-22
        相关资源
        最近更新 更多