我有三张桌子,上面有一些横幅信息,我需要通过CompanyID选择所有横幅。
表格是:
BannerCompany (AdminMaster.dbo.BannerUnidades)
Banner (AdminMaster.dbo.Banner)
BannerClient (AdminHotSite.dbo.Banner)
第一个表格( BannerCompany )有 CompanyID 和 BannerID ,并且链接到表格横幅广告 by BannerID ;
第二个表格(横幅)包含 BannerID 以及所有其余横幅信息;
第三个表格( BannerClient )是另一个表格,其中我还有其他横幅广告 CompanyID 和 BannerID (此 BannerClient 中的> BannerID 与表横幅中的 BannerID 不同。
我需要的是选择 BannerCompany 上的横幅,并使用横幅将横幅与 WHERE 相关联在 BannerCompany.BannerCompanyID 上,然后选择 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
提前致谢。
答案 0 :(得分:1)
我认为这会给你一个起点。
获取特定公司的所有横幅列表:
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