如何解决这个SQL练习?

时间:2013-09-30 21:38:07

标签: sql

  

table_cars:id,品牌,类型,许可证

     

table_distances:id_car,日期,距离

     

table_equipments:id,name,description

     

table_car_equipments:id_car,id_equipment

     

撰写以下查询:

     
      
  • 显示所有装有“灭火器”且昨天开车的车辆

  •   
  • 显示所有没有设备的品牌

  •   
  • 显示上个月由汽车“AB-2223-10”驾驶的总距离

  •   
  • 显示由巴黎汽车驾驶的每日平均距离

  •   

我是SQL的新手。

我试过了:

select table_cars.id 
from table_cars, table_equipments 
where table_equipments.id = table_cars.id 
and table_equipments.name LIKE 'fire extinguisher'; 

虽然我在表table_cars(id)和table_distances(id_car)中感到困惑。不一样。我被困在这里。

1 个答案:

答案 0 :(得分:0)

在您的where子句中,您尝试使用不存在的列table_equipments.id

table_cars的关键是id,当table_equipments中引用它时,它被称为id_car,表示这是汽车的ID (而不是其他实体)并且它将匹配id表中单个记录的table_cars值。

这称为“外键”:http://en.wikipedia.org/wiki/Foreign_key