SQL - 连接关于相同实体的两个表
Posted
技术标签:
【中文标题】SQL - 连接关于相同实体的两个表【英文标题】:SQL - Join Two Tables About The Same Entities 【发布时间】:2011-03-05 01:19:14 【问题描述】:我创建了两个表,每个表都包含一些关于同一实体的条目。如何编写查询以加入条目并在另一个表中创建统一条目?
抱歉给大家带来了困惑。我应该提供一个简单的例子。
我的两张表如下所示,
表 1:Name, ID, email, city, state, phone
表二:LastName, FirstName, email, gender, ID
【问题讨论】:
“关于同一实体”是什么意思? 也许你可以分享结构、代码,任何东西都会很好,并且肯定会帮助提供答案 嗨 Orbit,很抱歉给您带来了困惑。我应该提供一个简单的例子。表 1(姓名、身份证、电子邮件、城市、州、电话) 表 2(姓、名、电子邮件、性别、身份证) 另外请说明您正在使用的 RDBMS 和版本。 【参考方案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
编辑显示所有字段
【讨论】:
以上是关于SQL - 连接关于相同实体的两个表的主要内容,如果未能解决你的问题,请参考以下文章