SQL 4表查询
有人能帮我处理我写的问题吗?这些问题没有正常工作,也许除了第一个问题 我们有4个带-列的表:SQL 4表查询,sql,join,task,Sql,Join,Task,有人能帮我处理我写的问题吗?这些问题没有正常工作,也许除了第一个问题 我们有4个带-列的表: table_cars - id | brand | type | license table_equipments - id | name | description table_distances - id_car | date | distance table_cars_equipments - id_car | id_equipment 问题是: 展示所有配备“灭火器”且昨天已经驾驶过的汽车 显
table_cars - id | brand | type | license
table_equipments - id | name | description
table_distances - id_car | date | distance
table_cars_equipments - id_car | id_equipment
问题是:
SELECT
table_cars.id,
table_cars.brand,
from table_equipments
INNER JOIN table_cars_equipments ON table_equipments.id = table_car_equipments.id_equipment
INNER JOIN table_cars ON table_cars .id = table_cars_equipments.id_car
INNER JOIN table_distances ON table_distances.id_car = table_cars.id
WHERE table_equpments.name = 'fire extinguisher'
AND table_date.date = NOW() - INTERVAL 1 DAYS;
SELECT
table_cars.brand
from table_cars
INNER JOIN table_cars_equipments ON table_cars_equipments.id_car = table_cars .id
WHERE table__car_equpments.id_equipment = 0 OR NULL
SELECT table_cars.license,
sum(distance) as distance,
from table_distances
inner join table_cars on table_distances. Id_car = table_cars.id
where table_distances.date >= NOW() - INTERVAL 30 DAYS
and table.distances.date <= NOW()
SELECT Avg(distance) as avg_dist
from(
SELECT table_distances.distance,
Count(*) as dist
from table_distances
INNER JOIN table_cars_equipment ON table_dustances.id_car = table_cars_equipments.id_car
INNER JOIN table_equipments ON table_cars_equipments.id_equipments = table_equimpents.id
WHERE table_equipments.distance = "Ilfov"
GROUPBY table_distances.date) a;
选择
表2.id,
表4.1.1品牌汽车,
从表1到表2
表\u设备上的内部连接表\u车辆\u设备.id=表\u车辆\u设备.id\u设备
表车上的内部连接表车。id=表车设备。id\U车
表_distance.id_car=表_cars.id上的内部联接表_距离
其中表_equipments.name=‘灭火器’
表_date.date=NOW()-间隔1天;
挑选
表4.1.1汽车品牌
从桌上汽车
表车设备上的内部连接表车设备。id表车=表车。id
其中表\uuu car\u equipments.id\u equipment=0或NULL
选择表\u cars.license,
和(距离)作为距离,
从表_距离
内部连接表车与表车之间的距离。Id\u car=表\u cars.Id
其中,table_distance.date>=NOW()-间隔30天
和table.distances.date1。显示所有配备“灭火器”且昨天已行驶的汽车
SELECT C.* FROM
TABLE_CARS C
INNER JOIN TABLE_DISTANCES D ON C.ID = D.ID_CAR
INNER JOIN TABLE_CARS_EQUIPMENTS CE ON C.ID = CE.ID_CAR
INNER JOIN TABLE_EQUIPMENTS E ON CE.ID_EQUIPMENT = E.ID
WHERE E.DESCRIPTION = 'FIRE EXTINGUISHER'
AND TRUNC(D.DATE) = TRUNC(SYSDATE - 1);
2.展示所有无设备的品牌
SELECT DISTINCT BRAND
FROM TABLE_CARS C
WHERE NOT EXISTS
(
SELECT 'X' FROM TABLE_CARS_EQUIPMENTS CE
WHERE CE.ID_CAR = C.ID
);
3.显示上个月汽车“xxxx”行驶的总距离
SELECT SUM(DISTANCE)
FROM TOTAL_DISTANCES D
INNER JOIN TABLE_CARS C ON D.ID_CAR = C.ID AND C.BRAND = 'XXX'
WHERE TO_CHAR(D.DATE,'MON') = TO_CHAR(TRUNC(SYSDATE,'MON')-1 , 'MON')
4.显示“某些说明”中汽车每天行驶的平均距离
此处的日期函数特定于Oracle
SELECT TRUNC(D.DATE) AS DAY ,AVG(DISTANCE)
FROM TABLE_CARS C
INNER JOIN TABLE_DISTANCES D ON C.ID= D.ID_CAR
WHERE C.BRAND='SOME CAR'
GROUP BY TRUNC(D.DATE);