2012-03-27 67 views
0

我有两个名为“User”和“EndpointSubnet”的表。如何合并具有共同属性的两个表?

  • USER表有3个属性,即 '用户键', 'URI' 和 'NextUpdateTS'
  • ENDPOINTSUBNET表具有2个属性即 'SubnetIP' 和 'NextUpdateTS'。

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

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

我需要做的是合并这两个表使用通用属性即NextUpdateTS。

表必须看起来像:

UserKey | URI | SubnetIP | NextUpdateTS 

我写了一个查询。这是给输出,但在此查询“SubnetIP”不显示:

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

请告诉我在哪里把SubnetIP在此查询

+0

您应该真正告诉我们您正在使用哪种SQL方言。我相信你已经做到了,但是DarkGray移除了它? – AndreKR 2012-03-27 10:41:31

+1

从我可以看到它只说c#-4.0,这意味着SQL Server。 @ user1280381欢迎使用stackoverflow。用sql的问题,总是包括你的数据库类型和版本。由于数据库引擎之间有很多语法差异。所以知道你正在使用哪一个帮助我们来帮助你。 – Leigh 2012-03-27 19:10:27

回答

0

这不是一个简单的加入?

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

不,这不是....... – 2012-03-29 11:29:43

+0

但感谢您帮助我......我已经完成了这个......... – 2012-03-29 11:30:19

+0

它不是什么方式? – AndreKR 2012-03-29 12:57:09

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可能略有不同,但应该是非常相似的。

+0

我正在使用SQL Server 2008 ... – 2012-03-28 02:57:51

+0

然后上面应该工作。 – anothershrubery 2012-03-28 11:47:36

0

您需要注册。

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

为了避免“不明确的列”的错误,放在User.NextUpdateTS面前。这两个表中有两列名称。系统总是需要知道要显示哪一列,比较等。

+0

它不工作...出现错误“模糊的列名NextUpdateTS”..​​..我使用Visual Studio 2008与C#...我正在处理Web应用程序....如果有一些不同的语法C#? – 2012-03-28 03:00:40

+0

更新了答案。我应该首先注意:) – boisvert 2012-03-28 06:50:27

相关问题