2014-02-08 89 views
0

我應該包括以下字段的訓練數據庫中創建一個名爲view2的觀點:如何通過使用CREATE VIEW在SQL Server中的WHERE子句

project number, 
project name, 
employee number, 
employee last name, 
job description. 

當然,這是多個表在FROM聲明,我應該使用WHERE子句將表連接在一起。

我可以使用SSMS和JOIN語句很容易地創建這個,但現在已經被限制爲需要使用WHERE子句創建JOINS的標準,並且讓我感到困惑。它甚至有可能嗎?

+0

對不起,我不瞭解你。當你說「使用WHERE創建連接」時,你是什麼意思? – Leo

+1

你的問題提到SQL Server的SSMS,但它的標籤是MySQL,這是一個不同的DBMS altogther。哪一個? – Andomar

+0

是的,您可以進行連接並將過濾器添加到視圖中,但這會被「烘烤」,並且視圖的任何用法都將按照這些條件進行過濾。理智檢查 - 通過SSMS你的意思是SqlServer,而不是MySql? – StuartLC

回答

2

雖然你可以使用where子句來連接表:

select * 
from Projects p 
,  ProjectEmployes pe 
,  Employees e 
where p.id = pe.project_id 
     and e.id = pe.employee_id 

這是更好地使用on條款改爲:

select * 
from Projects p 
join ProjectEmployes pe 
on  p.id = pe.project_id 
join Employees e 
on  e.id = pe.employee_id 

on語法保持表和近海誓山盟他們的關係。當你加入三張以上的桌子時,這一點更加明顯!

on子句還分離關係條件和過濾條件。如果使用join,on子句具有關係,並且where子句具有該過濾器。

+0

這是我最初的想法。仍然不明白爲什麼要使用'where'子句而不是'JOIN ... ON'來加入連接似乎非常模糊和不必要。 – allendks45