簡體   English   中英

在訪問中,查詢僅在每個字段中都有記錄時顯示結果

[英]In access, query only shows results when there are records in EVERY field

我正在創建一個數據庫來跟蹤雇主和與雇主相關的數據。

我有一個參數查詢設置,用於提取與選定雇主相關的記錄。

目前,如果其中一個字段沒有記錄,但某些字段有記錄,當我運行查詢時,它會顯示為空白。 我希望它顯示與雇主相關的所有可用記錄。

SELECT 
    [Employer Contact].Employer,
    [Employer Type/Intern Functions].Type,  
    [Employer Type/Intern Functions].[Intern Functions/Responsibilities
    [Internship Notes].Date,
    [Internship Notes].Specialist,
    [Internship Notes].Notes
FROM 
    (
    [Employer Contact] 
    INNER JOIN [Internship Notes] 
        ON [Employer Contact].[Employer] = [Internship Notes].[Employer]
    ) 
    INNER JOIN [Employer Type/Intern Functions]
        ON [Employer Contact].[Employer] = [Employer Type/Intern Functions].[Employer]
WHERE 
(
    (
        ([Employer Contact].Employer)=[Forms]![Employer Record Search]![cboChooseEmp])
    ) 
OR (
    (([Forms]![Employer Record Search]![cboChooseEmp]) Is Null)
);

這是關系中的問題嗎? 標准? 如何構建我的查詢,以便在某些記錄為空時顯示具有值的記錄?

由於Employer Contact表似乎是從中選擇記錄的父表,因此您應該將此表LEFT JOIN連接到兩個子表Employer Type/Intern FunctionsInternship Notes ,以便始終顯示來自父表的記錄,無論子表是否包含相關記錄。

例如:

SELECT 
    [Employer Contact].Employer, 
    [Employer Type/Intern Functions].Type,  
    [Employer Type/Intern Functions].[Intern Functions/Responsibilities], 
    [Internship Notes].Date, 
    [Internship Notes].Specialist, 
    [Internship Notes].Notes
FROM 
    (
        [Employer Contact] LEFT JOIN [Internship Notes] ON 
        [Employer Contact].[Employer] = [Internship Notes].[Employer]
    ) 
    LEFT JOIN [Employer Type/Intern Functions] ON 
    [Employer Contact].[Employer] = [Employer Type/Intern Functions].[Employer]
WHERE 
    [Employer Contact].Employer = [Forms]![Employer Record Search]![cboChooseEmp] OR 
    [Forms]![Employer Record Search]![cboChooseEmp] IS NULL;

這樣,如果在Employer Contact表中沒有找到記錄,查詢將不會返回任何記錄。

要了解有關各種聯接類型之間差異的更多信息,請參閱此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM