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
答案 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;