mysql - MySQL 查询无结果

标签 mysql sql

请帮忙! 我有 3 张 table :

 employee, 
 assign, 
 vehicle. 

只有 2 名员工可以占用 1 辆车。我需要选择所有不拥有任何车辆的员工。

查询:

select EID,
    Employee_name
from employee
where EID not in (
        select user1
        from assign
        )
    and EID not in (
        select user2
        from assign
        )

如果“user1”或“user2”中的所有单元格都已填充,则此查询有效。 如果分配表的“user1”或“user2”为空值

分配表值

enter image description here

查询输出为空

查询结果

enter image description here

如果填写一个值,它将返回所有EID和employee_name(s) 不在指定表的 User1 和 User2 中。也就是说,如果所有 user1 和 user2 都已填满,则它可以正常工作。如何重新创建此查询,使其显示所有可用员工,无论 allocate.user1 或 allocate.user2 是否为空。

最佳答案

您可以使用不存在:

select eid,
    employee_name
from employee e
where not exists (
        select 1
        from assign a
        where e.eid in (a.user1, a.user2)
        );

关于mysql - MySQL 查询无结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42185800/

相关文章:

java - 如何阻止 Java 应用程序在数据库中插入相同的值 - SQL Server

sql - Oracle EXISTS 子句与 ROWNUM = 1

php - 如何让多个开源网络应用程序使用同一个数据库

php - 传递 GET 并使用 GET 读取 mySQL

php - 动态为mysql查询中的所有字段名分配别名

php - mysql_num_rows 不起作用

sql - 当您在 SERIAL 列中插入具有现有值的行时会发生什么?

mysql - EXISTS 与 IN 的子查询 - MySQL

php - 获取错误 : Can't connect to MySQL server on 'SERVER_IP' (99)

php - Jquery 显示和隐藏项目问题。空格