Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL-如何解决需要术语“ONLY”的查询?_Mysql_Sql - Fatal编程技术网

Mysql SQL-如何解决需要术语“ONLY”的查询?

Mysql SQL-如何解决需要术语“ONLY”的查询?,mysql,sql,Mysql,Sql,查询1:选择仅租用宝马的所有客户姓名和联系电话 我的问题是: customer(Id, Name, Address, PhoneNumber); station (Id, City, Country, Location) # e.g.: (123, ”London”, ”UK”, ”Stansted Airport”); car(Id, Reg, Type, Milage); contract(CustId, StationId, CarId); 查询2:所有租用BMW和Aud的客户可以首先使

查询1:选择仅租用宝马的所有客户姓名和联系电话

我的问题是:

customer(Id, Name, Address, PhoneNumber);
station (Id, City, Country, Location)
# e.g.: (123, ”London”, ”UK”, ”Stansted Airport”);
car(Id, Reg, Type, Milage);
contract(CustId, StationId, CarId);

查询2:所有租用BMW和Aud的客户可以首先使用HAVING子句查找仅租用BMW的客户id,然后将其与客户表连接,以获取这些客户id的相关详细信息

试试这个:

SELECT Name, PhoneNumber 
FROM Car, Customer, Station, Contract 
WHERE customer.Id = CustId AND station.Id = StationId AND Car.Id = CarId AND Type = "BMW" 
GROUP BY Name HAVING COUNT(Distinct Type) = 1;
在这里:

countdistinct c2.Type=1表示客户id只有一种类型的汽车。 sumc2.type='BMW'>0表示至少有一辆客户id为'BMW'类型的汽车
您可以首先使用HAVING子句找到仅租用BMW的客户id,然后将其与customer表连接,以获取这些客户id的相关详细信息

试试这个:

SELECT Name, PhoneNumber 
FROM Car, Customer, Station, Contract 
WHERE customer.Id = CustId AND station.Id = StationId AND Car.Id = CarId AND Type = "BMW" 
GROUP BY Name HAVING COUNT(Distinct Type) = 1;
在这里:

countdistinct c2.Type=1表示客户id只有一种类型的汽车。 sumc2.type='BMW'>0表示至少有一辆客户id为'BMW'类型的汽车
分组依据的目的是什么?选择姓名、电话号码。。。。按名称分组的SQL读取无效。。。不要使用旧的连接语法..分组依据的目的是什么?选择名称、电话号码。。。。按名称分组的SQL读取无效。。。不要使用旧的连接语法..如果没有then和end关键字,是否可以执行此操作?我有点理解,但我正在尝试以一种我可以执行的方式进行解释,因此我构建了另一个查询。选择名称,来自客户的电话号码,合同,Car WHERE Customer.Id不在选择来自合同的CustId,Car,客户,其中Car.Id=CarId,Customer.Id=CustId,Type=BMW@aSoulja-有很多错误-从交叉连接开始。@aSoulja-是的。请看我的答案。没有then和end关键字是否可以执行此操作?我有点理解,但我正在尝试以我可以执行的方式进行解释,因此我构建了另一个查询。选择姓名、来自客户的电话号码、合同、车辆所在客户。Id不在选择来自合同的客户Id、车辆中,客户,其中Car.Id=CarId,Customer.Id=CustId,Type=BMW@aSoulja-有很多错误-从交叉连接开始。@aSoulja-是的。看看我的答案。