mysql - SQL 在一个列表中但不在另一个列表中

标签 mysql

有三个表Vehicle、VehicleGroup和AssignedVehicleGroup,其格式如下:

车辆 - 车辆 ID、客户 ID、注册

VehicleGroup - 组 ID、组名称

AssignedVehicleGroup - 车辆 ID、组 ID

使用此模式可以将车辆放置在多个组中,但是我正在努力编写一个可以找到的查询:

  • 未分配给任何组的所有车辆
  • 不属于当前组的所有车辆(基于传入的变量)

此查询将填充一个列表,允许用户将车辆添加到当前组(如果车辆尚未在当前组或任何组中)。

最佳答案

这将为您提供分配表中不匹配的车辆列表:

SELECT v.* 
FROM   vehicle v 
       LEFT JOIN assignedvehiclegroup ag 
         ON ag.vehicleid = v.vehicleid 
            WHERE ag.vehicleid IS NULL 

返回不属于当前组的车辆:

SELECT v.* 
FROM   vehicle v 
       LEFT JOIN assignedvehiclegroup ag 
         ON ag.vehicleid = v.vehicleid 
            WHERE ag.groupid<=>100

关于mysql - SQL 在一个列表中但不在另一个列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8340707/

相关文章:

php - Dreamweaver PHP mySQL 插入到 WordPress wpdb 转换

mysql - 数据库设计 : Composite key vs one column primary key

php - 如何在 Laravel 5.2 中获得与外键的多对多关系?

mysql - 使用触发器来增加修订号是不好的做法吗?

mysql - 有条件地将字段添加到查询的输出

c# - 如果为 null,则 Eval() 显示自定义值

mysql - 在调用 Read() INSERT 之前访问字段的尝试无效

php - mysql 事件的替代方案(不是 Cronjob)

mysql - SQLMAP 的两个参数

mysql - 返回 MySQL 中特定列值的滞后