我的数据库就是这样
CUSTOMER (NAME,VAT,PHONE)
CAR(PLATENR,COLOUR)
RENTS(VAT,PLATENR, RENTDATE)
我想找到的是所有客户租用的所有黑色汽车(所有增值税号)。
我想使用嵌套的子查询和EXCEPT
或NOT EXISTS
。
我已经使用有效的COUNT
进行了此查询。
SELECT rents.PlateNr
FROM Rents,Car
WHERE Car.colour='black' AND car.PlateNr=rents.PlateNr
GROUP BY rents.PlateNr
HAVING COUNT(DISTINCT VAT) = (SELECT COUNT(*) FROM Customer);
我正在尝试使用本指南http://www.inf.usi.ch/faculty/soule/teaching/2016-fall/db/division.pdf来获得结果,但是我不了解在我的情况下如何实现查询。
答案 0 :(得分:0)
我正在寻找一个与我上面提供的有关除法的链接相似的答案。
经过一些搜索并尝试使用除以下方式进行的最终除法查询:
SELECT PlateNr
FROM Car
WHERE colour='black'
EXCEPT
SELECT PlateNr
FROM (SELECT car.PlateNr, rents.VAT
FROM car,rents
EXCEPT
SELECT PlateNr,VAT
FROM rents)
已经在支持EXCEPT的POSTGRE中进行了尝试,并且一切工作都像一个魅力。