繁体   English   中英

SQL Select来自2个数据库的3个表

[英]SQL Select with 3 table from 2 databases

我有三个表,其中包含一些横幅信息,我需要通过CompanyID从所有表中选择所有横幅。

这些表是:

BannerCompany (AdminMaster.dbo.BannerUnidades)
Banner        (AdminMaster.dbo.Banner)
BannerClient  (AdminHotSite.dbo.Banner)
  • 第一个表( BannerCompany )具有CompanyIDBannerID,并通过BannerID链接到表Banner ;

  • 第二个表( Banner )具有BannerID和所有其余的信息。

  • 第三表(BannerClient)是另一种表,其中i有其他横幅也与CompanyIDBannerID(这从表BannerClient BannerID距离BannerID从表横幅不同)。

我需要的是选择的横幅上BannerCompany横幅BannerIDBannerCompany.BannerCompanyID一个WHERE链接它们,然后从BannerClient用相同的地方,但现在在BannerClient.BannerCompanyID选择的横幅。

现在,我可以从第一个和第二个中选择横幅,但是我找不到在游戏中放置第三个表的方法。

所有表都具有相同名称的相同列。

到目前为止,我的代码:

SELECT * FROM AdminMaster.dbo.BannerUnidades AS bUnidade
INNER JOIN AdminMaster.dbo.Banner  AS bMaster ON bUnidade.BannerID = bMaster.BannerID
INNER JOIN AdminHotSite.dbo.Banner AS bHS     ON bHS.BannerPrincipal = 1
WHERE bHS.UnidadeCodEmitente = 45471

提前致谢。

我认为这将为您提供一个起点。

获取特定公司的所有横幅的列表:

SELECT bMaster.BannerID, bHS.BannerTitulo 
FROM AdminMaster.dbo.BannerUnidades AS bUnidade
INNER JOIN AdminMaster.dbo.Banner  AS bMaster ON bUnidade.BannerID = bMaster.BannerID
WHERE bUnidade.UnidadeCodEmitente = 45471

UNION ALL

SELECT bHS.BannerID, bHS.BannerTitulo 
FROM AdminHotSite.dbo.Banner AS bHS
WHERE bHS.UnidadeCodEmitente = 45471 AND bHS.BannerPrincipal = 1

使用自定义ORDER BY获取特定公司的所有横幅的列表:

SELECT bMaster.BannerID, bHS.BannerTitulo, SortOrder = 1, BannerOrdem 
FROM AdminMaster.dbo.BannerUnidades AS bUnidade
INNER JOIN AdminMaster.dbo.Banner  AS bMaster ON bUnidade.BannerID = bMaster.BannerID
WHERE bUnidade.UnidadeCodEmitente = 45471

UNION ALL

SELECT bHS.BannerID, bHS.BannerTitulo, SortOrder = 2,  BannerOrdem 
FROM AdminHotSite.dbo.Banner AS bHS
WHERE bHS.UnidadeCodEmitente = 45471 AND bHS.BannerPrincipal = 1
ORDER BY SortOrder, BannerOrdem 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM