我想寫一個查詢,將檢索一些列(真是一個驚喜!)。除了簡單的查詢,特別是在Access中,我感到非常可怕。以下是Access中查詢設計器的圖像。如何編寫此查詢以獲取我需要的內容?
底部的字段是我期待拉回來的字段。 project_master.ContactDesigner是contacts.ContactID的外鍵。我想獲取ID 2,3和4的MilestoneNames的列表。然後例如說,MilestoneID 2具有Project Initiation的MilestoneName,我想爲具有開始和結束日期的多個項目記錄一個記錄在該MilestoneID的project_milestone_dates中列出綁定到外鍵project_master.ContactDesigner的每條記錄的聯繫人名稱。例如,這隻需要抓取ProjectPriority爲2的記錄。
不知道這是否清楚,因爲我很難解釋我在這裏尋找的東西,但我缺少標準或甚至需要添加到查詢中的某些ID?我很迷茫。當前的設計不會在列中返回任何內容。
SELECT milestone_def.milestonename,
contacts.firstname,
priority_def.priorityname,
project_milestone_dates.startdate,
project_milestone_dates.enddate,
milestone_def.milestonedefid
FROM (project_milestone_dates
INNER JOIN (priority_def
INNER JOIN (contacts
INNER JOIN project_master
ON (contacts.contactid =
project_master.contactdesigner))
ON priority_def.prioritydefid =
project_master.projectpriority)
ON project_milestone_dates.projectid =
priority_def.prioritydefid)
INNER JOIN milestone_def
ON project_milestone_dates.milestoneid =
milestone_def.milestonedefid
WHERE (((project_master.projectpriority) = [@priority])
AND ((milestone_def.milestonedefid) = 5
OR (milestone_def.milestonedefid) = 6
OR (milestone_def.milestonedefid) = 7));
更改爲5或6或7,因爲它應該是。
編輯*
我已經刪除線AND(contacts.ContactID = project_master.ContactOwner),因爲我並不需要在查詢中。
您可以發佈此查詢的SQL命令的版本?我在Access GUI知識中生疏。 「= 2或3或4」看起來有點嫌疑。 –
已添加SQL ...... –
'INNER JOIN'只在連接的字段不爲空時才返回行;否則它不會返回。如果你需要能夠返回一行,即使連接字段爲空,也可以使用'LEFT JOIN'。不知道這是否是問題,因爲我看不到您的數據,但對於沒有經驗的SQL用戶來說這是一個常見的問題,所以我會提及它。 –