数据库SQL查询,比较值

时间:2014-02-19 09:10:40

标签: mysql sql database

CUSTOMER(cid, cname, ccity)
TICKET(tid, cid, pricepaid, milespaid, date)          - cid references CUSTOMER.cid
FLIGHT(fid, deptapc, arrapc, dept, arr, milesgiven) 
deptapc and arrapc reference AIRPORT.apc
FLIGHTTICKET(tid, fid, date) - tid references TICKET.tid and fid references FIGHT.fid
AIRPORT(apc, aname, acity)

输出已前往数据库中每个机场的任何客户的cid。 (在改变战斗时通过机场就足够了,所以它不一定是最终的目的地。)

我写这篇文章是为了显示每个客户去过的机场数量:

Select cid,count(cid)
From(SELECT cid, deptapc
FROM CUSTOMER 
Natural join TICKET Natural join FLIGHTTICKET Natural join FLIGHT
UNION
SELECT cid, arrapc
FROM CUSTOMER 
Natural join TICKET Natural join FLIGHTTICKET Natural join FLIGHT)
Group by cid;

但我不知道如何将每个值与机场总数进行比较,看看它们是否相同

Select count(apc) 
From AIRPORT

1 个答案:

答案 0 :(得分:0)

很容易就像你在FROM中使用的那样使用子查询:

SELECT cid, 
       Count(cid), 
       ( Count(cid) = (SELECT Count(apc) 
                       FROM   airport) ) AS result 
FROM  (SELECT cid, 
              deptapc 
       FROM   customer 
              natural JOIN ticket 
              natural JOIN flightticket 
             natural JOIN flight 
       UNION 
       SELECT cid, 
              arrapc 
       FROM   customer 
              natural JOIN ticket 
              natural JOIN flightticket 
              natural JOIN flight) 
GROUP  BY cid;