将两个查询(一个基于另一个)组合成一个查询

时间:2016-01-28 19:53:27

标签: sql ms-access

我有两个查询,一个基于另一个查询。有没有办法将它们组合成一个查询?

SELECT tblIssues.*, tblIssues.NewsletterLookup
FROM tblIssues
WHERE (((tblIssues.NewsletterLookup)=5));

SELECT tblArea.ID, tblArea.AreaName
FROM tblArea LEFT JOIN Query2 ON tblArea.ID = Query2.[AreaLookup]
WHERE (((tblArea.Dormant)=False) AND ((Query2.tblIssues.NewsletterLookup) Is Null));

2 个答案:

答案 0 :(得分:0)

您可以执行JOIN之类的

SELECT ti.*, tblArea.ID, tblArea.AreaName
FROM tblArea ta
LEFT JOIN tblIssues ti ON ta.ID = ti.[AreaLookup]
WHERE (ti.NewsletterLookup=5 OR ti.NewsletterLookup Is Null)
AND ta.Dormant=False;

答案 1 :(得分:0)

如果要在没有 Query2 的单个查询中执行此操作,可以在第二个示例中使用 Query2 中的等效SQL作为子查询:

SELECT a.ID, a.AreaName
FROM
    tblArea AS a
    LEFT JOIN
        (
            SELECT i.*
            FROM tblIssues AS i
            WHERE i.NewsletterLookup=5
        ) AS sub
    ON a.ID = sub.[AreaLookup]
WHERE
        a.Dormant=False
    AND sub.NewsletterLookup Is Null;