我在查询根据填充率显示记录时遇到困难。
例如,空缺可以没有预订或一些预订。如果空缺有预订,它们可以是“活动 [1]”、“待定 [0]”的形式。如果空缺有预订记录,我到目前为止编写的查询有效,但如果它没有预订记录,我无法让它工作。
我对预订空缺的查询(有效)如下:-
SELECT v.*, j.job_category_name, bu.business_unit_name
FROM vacancy v
INNER JOIN job_category j ON j.job_category_id = v.job_category_id
INNER JOIN business_unit bu ON bu.business_unit_id = v.business_unit_id
INNER JOIN booking b ON b.vacancy_id = v.vacancy_id
INNER JOIN booking_status bs ON bs.id = b.booking_status_id
WHERE
v.vacancy_status <> 'revoked' AND
v.vacancy_reference <> 'auto-generated booking' AND
v.business_unit_id IN (series of primary keys) AND
(bs.booking_status_type_id = 1 OR bs.booking_status_type_id = 2)
GROUP BY v.vacancy_id
HAVING v.vacancy_limit > count(b.booking_id)
ORDER BY v.vacancy_id DESC
我认为通过将 b 和 bs 的连接更改为 LEFT JOIN 会起作用,但它没有。
有任何想法吗?