我有这个数据:
如何选择尚未分配的硬件?
有两种情况:
employee_hardware中不存在的硬件
存在于employee_hardware但不存在的硬件
allocated = TRUE
这是我的尝试,但不正确,因为它显示同一硬件的多行。

SELECT h.hardware_id
    ,h.hardware_name
    ,h.created_at
    ,h.updated_at
FROM hardware h
LEFT JOIN employee_hardware eh ON h.hardware_id = eh.hardware_id
WHERE h.hardware_type_id = 2
    AND (
        eh.employee_id IS NULL
        OR eh.allocated = FALSE
        )
ORDER BY h.hardware_id

最佳答案

你可以试试这个

SELECT h.*
FROM hardware h
WHERE NOT EXISTS (  SELECT 'a'
                    FROM employee_hardware eh
                    WHERE h.hardware_id = eh.hardware_id
                    AND eh.allocated = TRUE
                  )

关于sql - 选择未分配的硬件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29844187/

10-10 06:49