【发布时间】:2021-12-05 06:46:46
【问题描述】:
您好,我有下表
司机
| Id | vehicleId | Power |
| -------- | --------------|-------------- |
| 123 | 2221 |112 |
| 124 | 2222 |111 |
车辆
vehicleId| VehicleAvl|
| -------- | -------------- |
| 2221| Yes|
| 2222| Yes|
车辆国家
Id| vehicleId| VehicleField| VehicleValue |
| -------| -------- | -------------- | -------------- |
| 1 | 2221| Residence Country| USA|
| 2| 2221| Registered Country| USA|
| 3 | 2221| Available Country| CAN|
| 4| 2222| Residence Country| USA|
从上面我需要编写一个简单的选择查询,它将获取车辆所在国家/地区是否属于美国
我不需要返回任何列而不是简单的 Select 1
我只有 Driver 表 ID 作为输入,所以我该如何编写需求查询
SELECT 1
FROM Driver IES, Vehicle d1,
where
IES.id= :GID and d1.vehicleId= IES.vehicleId
And (SELECT vehiclevalue AS RESIDENCE_COUNTRY
FROM VehicleCountry t2
where t2.vehicleId=d1.vehicleId
AND t2.vehiclefield= 'RESIDENCE COUNTRY'
) DR
AND (IES.POWER IS NOT NULL
OR DR.RESIDENCE_COUNTRY != 'USA'
OR DR.RESIDENCE_COUNTRY IS NULL)
【问题讨论】:
-
根据您的要求,您只需要 VehicleCountry 表。您可以根据您的条件执行 select 1 in case 语句。
-
不,我需要三个表的组合,因为我正在检查属于第一个和第二个表的其他字段。 ex AND (IES.POWER IS NOT NULL) 与第一张桌子有关,我手里只有第一张桌子的 ID