按示例查询。找到买了两张同样票的乘客

时间:2016-02-27 23:12:24

标签: mysql oracle

架构:

航班(Flight_Id,日期,从,到)

乘客(Passenger_Name,Gender)

票证(Ticket_Id,Flight_Id,Passenger_Name,Class,Price)

我知道怎样找到买了多张票的乘客。但不知道怎么找到只买了两张票的乘客。

2 个答案:

答案 0 :(得分:0)

两张门票 选择Passenger_Name 从机票t INNER JOIN乘客p 在p.Passenger_Name = t.Passenger_Name上 GROUP BY Passenger_Name 有COUNT(1)= 2;

多张票

选择Passenger_Name 从机票t INNER JOIN乘客p 在p.Passenger_Name = t.Passenger_Name上 GROUP BY Passenger_Name 有COUNT(1)> 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;