JOIN 嵌套 DISTINCT

JOIN Nested DISTINCT

我正在使用 MS Access 编写 SQL 语句,我想知道如何在我的 JOIN 中嵌套 SELECT DISTINCT 语句?

目前我正在编写 2 个查询以获得输出(2 个步骤):

第一个查询是一个简单的 DISTINCT 语句。 第二个查询是对在 1.

中创建的查询的 JOIN

如何在连接中嵌套 DISTINCT 语句以便一步执行操作?

SELECT DISTINCT tblFinalIssuerNames_ReverseRepos.ISIN, tblFinalIssuerNames_ReverseRepos.IssuerCode
FROM tblFinalIssuerNames_ReverseRepos;


SELECT QSel_CollateralReposII.ISIN, QSel_CollateralReposII.MarketValueUSD, QSelDistinctISINs.IssuerCode
FROM QSel_CollateralReposII INNER JOIN QSelDistinctISINs ON QSel_CollateralReposII.ISIN = QSelDistinctISINs.ISIN;

我正在考虑类似下面的内容,但语法错误......

SELECT QSel_CollateralReposII.ISIN, QSel_CollateralReposII.MarketValueUSD, tblFinalIssuerNames_ReverseRepos.IssuerCode
FROM QSel_CollateralReposII INNER JOIN tblFinalIssuerNames_ReverseRepos ON SELECT DISTINCT QSel_CollateralReposII.ISIN = tblFinalIssuerNames_ReverseRepos.ISIN;

我无法测试 Access 中允许的内容和不允许的内容,但您可以将查询中的 QSelDistinctISINs 替换为定义它的查询,方法是将其放在括号内并为其指定别名 - d 下面。这是有效的 SQL 语法:

SELECT 
    r.ISIN, 
    r.MarketValueUSD, 
    d.IssuerCode
FROM 
    QSel_CollateralReposII  r
  INNER JOIN 
    ( SELECT DISTINCT 
          ISIN,
          IssuerCode
      FROM 
          tblFinalIssuerNames_ReverseRepos
    ) d
    ON r.ISIN = d.ISIN ;