我有一個包含三個表的數據庫。 「名冊」,「培訓課程」和「課程註冊」 名冊和課程註冊通過「ETID」(員工培訓ID)連接。課程註冊和培訓課程由「課程ID」連接。
我想創建一個將返回所有員工的查詢,以及所有課程的YES/NO值。 我寫了以下內容來看看特定員工,但我似乎找不到正確的方式來退回所有員工。任何幫助,將不勝感激。試圖創建一個將返回所有記錄的查詢讓我難住
SELECT [TRAINING COURSES].[course id]
, [TRAINING COURSES].[course name]
, "YES" AS Completed
, [COURSE ENROLLMENT].[training date]
FROM [TRAINING COURSES]
INNER JOIN [COURSE ENROLLMENT]
ON [COURSE ENROLLMENT].[course id]=[TRAINING COURSES].[course id]
WHERE [COURSE ENROLLMENT].[ETID]=[ENTER ETID]
UNION ALL
SELECT [TRAINING COURSES].[course id]
, [TRAINING COURSES].[course name]
, "No" AS Completed
, NULL
FROM [TRAINING COURSES]
WHERE NOT EXISTS
(
SELECT *
FROM [COURSE ENROLLMENT]
WHERE [COURSE ENROLLMENT].[course id]=[TRAINING COURSES].[course id]
AND [COURSE ENROLLMENT].[ETID]=[ENTER ETID:]
)
ORDER BY [TRAINING COURSES].[course name];
請注意:如果您使用Pascal格式,您的查詢將更容易讀寫:'CourseEnrollment'而不是'[COURSE ENROLLMENT]'。你可能更喜歡下劃線('Course_Enrollment'),但坦率地說,任何事情都比包圍每個表格和每個字段都好。 – 2011-04-12 16:43:36
訪問,恕我直言,最大的罪惡之一是它允許對象名稱中的空格。而且我不是一個自反的Access-basher .... – RolandTumble 2011-04-12 18:27:25
我是一名全職Access開發人員,自從我使用它的頭幾年以來,我沒有在對象名稱中使用空格。在很短的時間之後,它就變得很明顯,那裏沒有實用性。許多人將對象名稱與表示層名稱混淆,其中大多數可以在對象定義中定義(如表中字段的標題屬性)。 – 2011-04-13 01:39:43