我有这些数据:
如何选择尚未分配的硬件?
有两种情况:
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
答案 0 :(得分:2)
你可以试试这个
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
)