如何合并具有共同属性的两个表?
我有两个名为“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在此查询
这不是一个简单的加入?
SELECT [URI],[UserKey],[NextUpdateTS],[SubnetIP]
FROM [User]
JOIN [EndpointSubnet] ON [EndpointSubnet].[NextUpdateTS] = [User].[NextUpdateTS]
不,这不是....... – 2012-03-29 11:29:43
但感谢您帮助我......我已经完成了这个......... – 2012-03-29 11:30:19
它不是什么方式? – AndreKR 2012-03-29 12:57:09
您正在使用哪些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可能略有不同,但应该是非常相似的。
我正在使用SQL Server 2008 ... – 2012-03-28 02:57:51
然后上面应该工作。 – anothershrubery 2012-03-28 11:47:36
您需要注册。
SELECT UserKey, URI, SubnetIP, User.NextUpdateTS
FROM User
JOIN EndpointSubnet
ON User.NextUpdateTS = EndpointSubnet.NextUpdateTS
为了避免“不明确的列”的错误,放在User.
在NextUpdateTS
面前。这两个表中有两列名称。系统总是需要知道要显示哪一列,比较等。
它不工作...出现错误“模糊的列名NextUpdateTS”....我使用Visual Studio 2008与C#...我正在处理Web应用程序....如果有一些不同的语法C#? – 2012-03-28 03:00:40
更新了答案。我应该首先注意:) – boisvert 2012-03-28 06:50:27
您应该真正告诉我们您正在使用哪种SQL方言。我相信你已经做到了,但是DarkGray移除了它? – AndreKR 2012-03-27 10:41:31
从我可以看到它只说c#-4.0,这意味着SQL Server。 @ user1280381欢迎使用stackoverflow。用sql的问题,总是包括你的数据库类型和版本。由于数据库引擎之间有很多语法差异。所以知道你正在使用哪一个帮助我们来帮助你。 – Leigh 2012-03-27 19:10:27