我有这个数据:
如何选择尚未分配的硬件?
有两种情况: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/