[英]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 Functions
和Internship 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.