我有两张表,员工和车辆。
- 员工 (emp_id,first_name,last_name)
- 车辆(vehicle_id、vehicle_type、emp_id)
假设车辆类型有值(value)汽车和摩托车。
有些员工没有汽车和摩托车,有些员工只有汽车或摩托车,有些员工汽车和摩托车。
我的问题是如何找到没有车的员工?
下面是我的查询,但结果是错误的,因为它仍然得到既有汽车又有摩托车的员工。
SELECT e.emp_id,e.first_name, e.last_name,v.vehicle_type
FROM employees e
LEFT JOIN vehicles v
ON e.emp_id= v.emp_id
WHERE NOT vehicle_type='car'
GROUP BY e.emp_id;
最佳答案
您可以使用 not exists
运算符:
SELECT e.*
FROM employees e
WHERE NOT EXISTS (SELECT *
FROM vehicles v
WHERE e.emp_id = v.emp_id AND vehicle_type = 'car'
)
关于sql - 查询不像sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49715018/