【问题标题】:How can I join two join queries into one?如何将两个连接查询合并为一个?
【发布时间】:2016-04-22 10:53:47
【问题描述】:

我有点迷路了,我需要加入两个连接查询来形成一个表。这是我正在编写的脚本...

SELECT Email, Domain, site.SiteID, site.SiteName, Status, LastLogin, up.UPID, up.UPName, trd.TRMCID, trd.TRMCName
FROM UserDetails as ud
INNER JOIN SiteLocation as site
on ud.SiteID = site.SiteID

INNER JOIN UltimateParent as up
on ud.UPID = up.UPID

INNER JOIN TRMCDetails as trd
on ud.TRMCID = trd.TRMCID

SELECT SiteID, cinfo.CountryCode, Country
From Country as cntry
INNER JOIN CountryInfo as cinfo
on cntry.CountryCode = cinfo.CountryCode

INNER JOIN SiteLocation as site2
on cntry.CountryCode = site2.CountryCode

我需要显示国家,但国家代码与 SiteID 相关联。我很难加入他们两个。

这是第一个表的样子

Email-Domain-SiteID-SiteName-Status-LLogin-UPID-UPName-TRMCID-TRMCName

这是第二张桌子的样子

SiteID-CountryCode-Country

我需要第三张桌子看起来像这样

Email-Domain-SiteID-SiteName-Status-LLogin-UPID-UPName-TRMCID-TRMCName-Country

但是,我在合并之前创建的两个联接时遇到了问题。

提前感谢您的帮助!

干杯!

【问题讨论】:

标签: sql sql-server join


【解决方案1】:

试试喜欢:

SELECT
    Email,
    Domain,
    site.SiteID,
    site.SiteName,
    Status,
    LastLogin,
    up.UPID,
    up.UPName,
    trd.TRMCID,
    trd.TRMCName,
    cinfo.CountryCode,
    cntry.Country
FROM UserDetails as ud
    INNER JOIN UltimateParent up on ud.UPID = up.UPID
    INNER JOIN TRMCDetails trd on ud.TRMCID = trd.TRMCID
    INNER JOIN CountryInfo cinfo on cntry.CountryCode = cinfo.CountryCode
    INNER JOIN SiteLocation site on ud.SiteID = site.SiteID
    INNER JOIN Country cntry on cntry.CountryCode = site.CountryCode

【讨论】:

  • 这成功了!现在我明白我在哪里犯了错误。谢谢,伙计!
  • 最欢迎约书亚...!
【解决方案2】:

您可以将第二个查询用作子查询。希望我能很好地理解您在寻找什么。

SELECT Email, Domain, site.SiteID, site.SiteName, Status, LastLogin, up.UPID, up.UPName, trd.TRMCID, trd.TRMCName, s1.Country
FROM UserDetails as ud
INNER JOIN SiteLocation as site
on ud.SiteID = site.SiteID
INNER JOIN UltimateParent as up
on ud.UPID = up.UPID
INNER JOIN TRMCDetails as trd
on ud.TRMCID = trd.TRMCID
INNER JOIN 
 (
  SELECT SiteID, cinfo.CountryCode, Country
  From Country as cntry
  INNER JOIN CountryInfo as cinfo
  on cntry.CountryCode = cinfo.CountryCode

  INNER JOIN SiteLocation as site2
  on cntry.CountryCode = site2.CountryCode
) s1 on s1.SiteID = site.SiteID

【讨论】:

  • 这是我尝试制作的第一个解决方案。我只是在子查询部分弄错了。有点糊涂了谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-28
相关资源
最近更新 更多