![](/img/trans.png)
[英]SQL script to select information from the same table on each databases?
[英]SQL Select with 3 table from 2 databases
我有三个表,其中包含一些横幅信息,我需要通过CompanyID从所有表中选择所有横幅。
这些表是:
BannerCompany (AdminMaster.dbo.BannerUnidades)
Banner (AdminMaster.dbo.Banner)
BannerClient (AdminHotSite.dbo.Banner)
第一个表( BannerCompany )具有CompanyID和BannerID,并通过BannerID链接到表Banner ;
第二个表( Banner )具有BannerID和所有其余的信息。
第三表(BannerClient)是另一种表,其中i有其他横幅也与CompanyID和BannerID(这从表BannerClient BannerID距离BannerID从表横幅不同)。
我需要的是选择的横幅上BannerCompany与横幅由BannerID与BannerCompany.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.