车辆年份可能包含证人提供的车辆信息

时间:2018-04-16 23:07:10

标签: mysql sql

对于我的CIS类,我有SQL项目,我仍然是SQL的新手,并试图学习它。任何帮助将不胜感激。

质询:所收集的证据显示,车辆的颜色是白色,制造商是宝马,车上的一些字母被记住:板上有三个字母" C" s 。 需要:

  1. 编写查询以显示可能包含证人提供的车辆信息的所有驾驶员姓名和license_plate_number / vehicle_make /车辆年份。必要时添加属性以完成分配。
  2. 我做了这个问题的第一部分:

    select driver_name as "Driver Name", license_plate_number as 
    "License Plate Number", vehicle_make as "Make", make_year as "Year"  
    from driver, license 
    where driver.driver_id = license.driver_id  
    

    但是对于第二部分我得到一个空的回报,我不知道我做错了什么。这就是我试过的:

    select driver_name, license_plate_number, vehicle_make, make_year 
    from driver, license 
    where driver.driver_id = license.driver_id and 
    license_plate_number like 'C%%CC%%' and  
    vehicle_make = "BMW"  
    and color = "white"  
    

1 个答案:

答案 0 :(得分:0)

你的问题是盘子上有三个字母“C”。

你写license_plate_number like 'C%%CC%%'的方式意味着盘子必须以C开头而且双倍%不是必需的。 %sign是替换任意数量的字符串。

在板上任意三个字母“C”的正确条件是: license_plate_number like '%C%C%C%'

在我们学习的同时,请学会使用正确的JOIN语法。您使用的样式是在SQL-92标准之前,已经过时了25年。

https://en.wikipedia.org/wiki/Join_(SQL)

SELECT d.driver_name, l.license_plate_number, l.vehicle_make, l.make_year 
FROM driver d
INNER JOIN license l ON d.driver_id = l.driver_id
WHERE l.license_plate_number like '%C%C%C%'
AND l.vehicle_make = "BMW"  
AND l.color = "white"  

http://sqlfiddle.com/#!9/d1836d/19