组合两个SQL查询

组合两个SQL查询,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,所以我对sql不是很在行,所以我在这个问题上有点纠结: 我查询我们的数据库,它会返回其中所有内容的列表 SELECT Id, Version, Name, ImplementationId, ManagedDataRepoId, Description, ParentId FROM Entity 例如,它返回: 317,0,amAsset,42,82,空,空 ImplementationId值是另一个表中的所有Int,该表链接到我可以使用以下方法检索的每个项目的名称: SELECT i.Nam

所以我对sql不是很在行,所以我在这个问题上有点纠结: 我查询我们的数据库,它会返回其中所有内容的列表

SELECT Id, Version, Name, ImplementationId, ManagedDataRepoId, Description, ParentId FROM Entity
例如,它返回: 317,0,amAsset,42,82,空,空

ImplementationId值是另一个表中的所有Int,该表链接到我可以使用以下方法检索的每个项目的名称:

SELECT i.Name from Implementation i
JOIN Entity e
ON e.ImplementationId = i.Id
它将返回“Current”,这是来自第一个查询的ImplementationID42的名称

有没有办法将这些组合成一个查询?理想情况下,它将返回:

317,0,amAsset,当前,82,空,空


谢谢大家

您已经在第二个查询中获得了连接;您只需选择所需的实际列

SELECT e.Id, e.Version, e.Name, i.Name AS ImplementationId, e.ManagedDataRepoId, e.Description, e.ParentId
FROM Implementation i
     JOIN Entity e
         ON e.ImplementationId = i.Id

您已经在第二个查询中获得了联接;您只需选择所需的实际列

SELECT e.Id, e.Version, e.Name, i.Name AS ImplementationId, e.ManagedDataRepoId, e.Description, e.ParentId
FROM Implementation i
     JOIN Entity e
         ON e.ImplementationId = i.Id

为安全起见,请为每列使用表别名

SELECT e.Id, e.Version, e.Name,i.Name, e.ManagedDataRepoId, e.Description, e.ParentId from Implementation i
JOIN Entity e
ON e.ImplementationId = i.Id

为安全起见,请为每列使用表别名

SELECT e.Id, e.Version, e.Name,i.Name, e.ManagedDataRepoId, e.Description, e.ParentId from Implementation i
JOIN Entity e
ON e.ImplementationId = i.Id
。。。为了让事情变得更漂亮(更具可读性),你可以用一种更标准的方式来布置它

SELECT e.Id, 
       e.Version, 
       e.Name,
       i.Name, 
       e.ManagedDataRepoId, 
       e.Description, 
       e.ParentId 
FROM   Implementation i
       INNER JOIN Entity e
        ON e.ImplementationId = i.Id
。。。为了让事情变得更漂亮(更具可读性),你可以用一种更标准的方式来布置它

SELECT e.Id, 
       e.Version, 
       e.Name,
       i.Name, 
       e.ManagedDataRepoId, 
       e.Description, 
       e.ParentId 
FROM   Implementation i
       INNER JOIN Entity e
        ON e.ImplementationId = i.Id

完美的这正是我需要的。有没有办法让它现在仍然将结果称为“ImplementationId”,而不是称它为“Name”?结果被解析为JSON,然后输入到DataTables显示中,因此它希望列标题是maintained@user2069834:有几种方法可以重命名列,但我在上面介绍了一种方法。这些是非常基本的SQL问题;我建议您阅读一下SQL查询。谢谢!是的,SQL通常不是我使用的东西,但是这个项目需要一点它,除了这一点,我几乎可以得到所有东西非常感谢!那么,是否可以进一步使用ManagedDataRepoID列执行此操作?从另一个名为ManagedDataRepo?@user2069834的表中获取该ID的名称:您可以根据需要加入任意多个表并继续相同的模式。只需添加另一个
JOIN。。。在
上,使用列列表中的表格。完美!这正是我需要的。有没有办法让它现在仍然将结果称为“ImplementationId”,而不是称它为“Name”?结果被解析为JSON,然后输入到DataTables显示中,因此它希望列标题是maintained@user2069834:有几种方法可以重命名列,但我在上面介绍了一种方法。这些是非常基本的SQL问题;我建议您阅读一下SQL查询。谢谢!是的,SQL通常不是我使用的东西,但是这个项目需要一点它,除了这一点,我几乎可以得到所有东西非常感谢!那么,是否可以进一步使用ManagedDataRepoID列执行此操作?从另一个名为ManagedDataRepo?@user2069834的表中获取该ID的名称:您可以根据需要加入任意多个表并继续相同的模式。只需添加另一个
JOIN。。。打开
,并使用列列表中的表。