如何合并具有共同属性的两个表?

时间:2012-03-27 09:17:51

标签: sql sql-server

我有两个名为“User”和“EndpointSubnet”的表。

  • USER表有3个属性,即'UserKey','URI'和'NextUpdateTS'
  • ENDPOINTSUBNET表有2个属性,即'SubnetIP'和'NextUpdateTS'。

NextUpdateTS属性对两个表都是通用的。

URI是员工的LoginId,SubnetIP是他们的IP地址。

我需要做的是使用公共属性ieNextUpdateTS合并表。

表必须如下:

UserKey | URI | SubnetIP | NextUpdateTS

我写了一个查询。它提供输出,但在此查询中“SubnetIP”未显示:

SELECT [URI],[UserKey],[NextUpdateTS] 
FROM [User] 
WHERE [NextUpdateTS] 
  IN(
   SELECT [NextUpdateTS] 
   FROM [User] 
   INTERSECT 
   (SELECT [NextUpdateTS] FROM [EndpointSubnet]))

请告诉我在这个查询中放置SubnetIP的位置

3 个答案:

答案 0 :(得分:0)

这不是一个简单的连接吗?

SELECT [URI],[UserKey],[NextUpdateTS],[SubnetIP]
FROM [User]
JOIN [EndpointSubnet] ON [EndpointSubnet].[NextUpdateTS] = [User].[NextUpdateTS]

答案 1 :(得分:0)

您使用的是什么DBMS?在MySQL中,它将是一个简单的INNER JOIN

SELECT u.URI, u.UserKey, es.SubnetIP, u.NextUpdateTS
FROM User u
INNER JOIN EndpointSubnet es ON u.NextUpdateTS = es.NextUpdateTS

其他DBMS可能略有不同,但应该非常相似。

答案 2 :(得分:0)

你需要加入。

SELECT UserKey, URI, SubnetIP, User.NextUpdateTS
FROM User
JOIN EndpointSubnet
ON User.NextUpdateTS = EndpointSubnet.NextUpdateTS

为避免出现“模糊列”错误,请在User.前面加NextUpdateTS。这两个表中有两列名称;系统总是需要知道要显示哪一列,比较等。