2016-02-27 44 views
-2

模式:按实例查询。发现乘客谁已经买了两个相同的票

飞行(Flight_Id,日期,发件人,收件人)

客运(PASSENGER_NAME,性别)

票(TICKET_ID,Flight_Id,PASSENGER_NAME,类,价格)

我知道如何找到谁买了多张票的乘客。但不知道如何找到只买了两张票的乘客。

+0

哪个RDBMS这是因为你已经为MySQL或Oracle标记了它吗? – MT0

+0

对不起,你们看到我的照片了? – user92322

+0

这是查询范例 – user92322

回答

0

两张票 选择PASSENGER_NAME FROM票证T INNER上p.Passenger_Name = t.Passenger_Name 组加入乘客P BY PASSENGER_NAME HAVING COUNT(1)= 2;

多于一张门票

选择PASSENGER_NAME FROM票证T INNER JOIN乘客P 上p.Passenger_Name = t.Passenger_Name GROUP BY PASSENGER_NAME HAVING COUNT(1)> 1;

0

如果你想谁买了整整两个票航班,然后乘客:如果你想谁买多一票的航班,然后乘客

SELECT Passenger_Name, 
     Flight_Id 
FROM  Ticket 
GROUP BY Passenger_Name, 
     Flight_Id 
HAVING COUNT(Ticket_Id) = 2; 

SELECT Passenger_Name, 
     Flight_Id 
FROM  Ticket 
GROUP BY Passenger_Name, 
     Flight_Id 
HAVING COUNT(Ticket_Id) > 1;