首先,我对SQL全新,看过一些教程,vidoes,尝试搜索但没找到我需要的东西。我知道它之前曾问过,但我找不到它。
我需要找到的基本上就像
选择Company.Name,Programmer.Name,Manager.Name,CEO.Name
其中Company.City = Programmer.City = Manager.City = CEO.City
喜欢选择所有来自伦敦的人。
编辑:尝试仅使用2个表执行此操作,代码如下,但我收到错误
无法绑定多部分标识符“Company.Name”。
SELECT Company.Name
FROM Company Cm
INNER JOIN Programmer Pg
ON Cm.City = Pg.City
WHERE Cm.City = 'London'
答案 0 :(得分:1)
尝试使用您指定的别名:
SELECT Cm.Name
FROM Company as Cm
INNER JOIN Programmer as Pg
ON Cm.City = Pg.City
WHERE Cm.City = 'London'
您可以扩展模式:
select Cm.Name, Cm.Address,
Pg.Name, Pg.Address,
Mgr.Name, Mgr.Address
from Company as Cm inner join
Programmer as Pg on Pg.City = Cm.City inner join
Manager as Mgr on Mgr.City = Cm.City
where Cm.City = 'London'
这将返回所有表都具有匹配数据的行,即City
。
如果您希望返回可能缺少某些数据的行,例如管理员但没有程序员,那么您将使用left outer join
而不是inner join
。使用outer join
需要注意构造where
子句以避免将连接从外部转换为内部。
select Cm.Name, Cm.Address,
Pg.Name, Pg.Address,
Mgr.Name, Mgr.Address
from Company as Cm left outer join
Programmer as Pg on Pg.City = Cm.City left outer join
Manager as Mgr on Mgr.City = Cm.City
where Cm.City = 'London'