sql - 查询不像sql

标签 sql select

我有两张表,员工和车辆。

  • 员工 (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/

相关文章:

mysql - 写入 UPDATE 语句时出现重复主键错误

sql - 使用相同的WHERE子句,SQL Server DELETE和SELECT的行为不同

android - VACUUM 结果为 "Unable to open database file"

sql - varchar 到数字的转换

java - 如何在android中的sqlite中使用波斯变量?

javascript - jQuery 从选择框中显示两个按钮

mysql - 我如何滞后 MySQL 中的列?

sql - 如何使用具有最大日期的行进行 LEFT JOIN?

MySQL 连接和内部选择

sql-server - 选择顶部到不同的变量中