在数据库中,我有一些由客户租用的汽车。我想找到所有客户租用的汽车,并显示其PlateNr。换句话说,我想在MySql中进行SQL划分。
我的数据库是这样的:
顾客ID,Name1 , John2 , Scott
汽车PlateNr,Colour1111 , red2222 , black
租金ID , PlateNr , Date1, 1111, 2010-01-011, 1111, 2010-02-012, 1111, 2010-03-022, 2222, 2010-01-02
按照一些说明,我有以下查询,但无法找到所有客户租用的汽车(正确结果应为Platenr = 1111)。查询出了什么问题?
SELECT PlateNr
FROM rents as R1
WHERE NOT EXISTS
(SELECT car.PlateNr
FROM car
WHERE NOT EXISTS
(SELECT rents.PlateNr
FROM rents
WHERE rents.PlateNr=R1.PlateNr));
最佳答案
我将此查询写为:
SELECT PlateNr
FROM Rents
GROUP BY PlateNr
HAVING COUNT(DISTINCT ID) = (SELECT COUNT(*) FROM Customer);
用简单的英语来说,这表示要查找所有其租赁客户数量与客户总数相匹配的车牌。我在这里假定
ID
是Customers
表中的唯一列。关于mysql - SQL Division Operator和Mysql中的实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53294924/