在数据库中,我有一些由客户租用的汽车。我想找到所有客户租用的汽车,并显示其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);


用简单的英语来说,这表示要查找所有其租赁客户数量与客户总数相匹配的车牌。我在这里假定IDCustomers表中的唯一列。

关于mysql - SQL Division Operator和Mysql中的实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53294924/

10-11 20:11