我正在構建一個SQL腳本,該腳本將有助於創建新的AD帳戶的自動化。在引用表2和3時將數據插入表2中的表1
我有3個表涉及我的問題 - CurrentAD,ADChanges和工人。
CurrentAD表將包含所有AD帳戶的列表並且不會被清除,但是每次腳本運行時,worker和ADChanges表都會被清除並重新填充。
ADChanges表的目的是,如果我們在worker表中有一條記錄,例如,用戶名的姓氏不同,但給定的名稱和僱員ID與現有記錄匹配CurrentAD表中,該行從worker表插入到ADChanges表中,然後從worker表中刪除。
這是我第一次做任何SQL腳本但一切似乎除了這個代碼一個塊中工作:
INSERT INTO ADChanges (sn, givenName, employeeID)
SELECT Worker.sn, Worker.givenName, Worker.employeeID
FROM Worker,
CurrentAD
WHERE Worker.sn NOT LIKE CurrentAD.sn AND Worker.employeeID LIKE CurrentAD.employeeID
OR Worker.givenName LIKE CurrentAD.givenName AND Worker.sn LIKE CurrentAD.sn AND Worker.ou LIKE CurrentAD.ou
OR Worker.givenName NOT LIKE CurrentAD.givenName AND Worker.employeeID LIKE CurrentAD.employeeID
GO
上面的代碼是什麼是應該能夠從區分變化新的條目,但它不這樣做 - 也不會給我一個錯誤。我相信這可能是因爲有3張桌子涉及,但再次,因爲這是我第一次不知道從哪裏開始。
到目前爲止,我在互聯網上發現的一切都告訴我如何將數據從2個表連接到第三個,這不是我需要做的。
任何幫助,將不勝感激!我正在使用Microsoft SQL Server 2012.
你的意思是,你並不需要從2代表的「加入數據第三」?連接5個表可以邏輯表示爲((((表1連接表2)連接表3)連接表4)連接表5'。 –
我建議你先用括號()明確地分組你的WHERE條件,這樣你的語句返回時就沒有歧義。 – Zach
此外,爲了清晰起見,我強烈建議使用ANSI JOIN語法。 –