2017-03-13 55 views
1

我有三个表:SQL使用列值从另一个表中获取列值,然后使用THAT值从具有该值的第三个表中获取列的数量?

Carrier(CarrierID(PK), FirstName, LastName) 
Customer(CustomerID(PK), FirstName, LastName, RouteID(FK)) 
Route(RouteID(PK), CarrierID(FK), RouteName) 

一个Route只有一个载体。

我需要显示的客户数,每个承运人负责。

我知道我需要使用CarrierID得到路由ID,然后使用路由ID与路由ID来算客户的行。

有人能向我解释说SELECT语句是什么样子?

+2

你熟悉'JOIN'?这是一个非常基本的SQL概念。 –

回答

0

如果您需要客户的不同号码,您可以通过使用count(不同..)组,并加入

select r.CarrierID, count(distinct CustomerID) 
from Route r 
inner join Customer c on c.RouteID = r.RouteID 
group by r.CarrierID 


select r.CarrierID, c2.Firstname, c2.Lastname, count(distinct CustomerID) 
from Route r 
inner join Customer c on c.RouteID = r.RouteID 
inner join Carrier c2 on c2.CarrierID = r.CarrierID 
group by r.CarrierID, c2.Firstname, c2.Lastname 
+0

如果我需要在相同的结果中显示“Carrier.FirstName”和“Carrier.LastName”,该怎么办? – zuddsy

+1

只是另一个加入..答案更新 – scaisEdge

相关问题