【问题标题】:SQL Server: JOIN two different queriesSQL Server:加入两个不同的查询
【发布时间】:2021-05-27 13:04:58
【问题描述】:

sql-server 没有 USING 功能。要使用多个选择语句连接两个不同的表,我们使用 'ON' table1.ID = Table2.ID

SELECT *
FROM
(SELECT M.ID as MAPID, M.Name, Avg(Distance) 'Avg Road length', Max(Distance)'Max Length'
 FROM MAP 
 inner join ROAD R on M.ID  = R.MapID                      
 GROUP BY M.ID, M.Name) T1


left join

 SELECT *
 FROM
 (SELECT select  R.MapID as MAPID,  R.IDFrom,  R.IDTo 
  from    ROAD R
 group by R.MapID, R.IDFrom, R.IDTo) T2 ON T1.MAPID = T2.MAPID




 -- using (MAPID); (wrong)

【问题讨论】:

  • SQL Server 是否支持JOIN USING?请改用ON T1.MAPID = T2.MAPID

标签: sql sql-server database ssms


【解决方案1】:

替换

USING (MAPID) 

ON t1.mapid = t2.mapid

【讨论】:

  • @marc_s 你更好的布局更清晰,更清晰。谢谢。
  • 不要在外部查询中使用 * - 为结果指定您想要的特定列。您还可以修改查询并将第一个查询用作基础并使用 TOP 1 的 OUTER APPLY 来获取其他列。
猜你喜欢
  • 1970-01-01
  • 2010-10-08
  • 2012-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
  • 2016-12-24
  • 1970-01-01
相关资源
最近更新 更多