可以建议我从 MySQL 选择记录的最佳方式
customer
--------
id bed_id status
1 1 vocated
2 1 booked
3 2 vocated
bed
-----
id name
1 lower
2 middle
3 upper
我需要选择已腾出或未分配的床位
这里,预期的结果是 空床应该是: bed_id's = 2 和 3 获得这种结果的最佳 SQL 查询是什么
最佳答案
连接表并按床的 id 进行分组,并将条件放入 HAVING 子句中:
select b.id, b.name
from bed b left join customer c
on c.bed_id = b.id
group by b.id
having (
sum(status = 'vacated') > 0
and
sum(status = 'booked') = 0
) or sum(status is null) > 0
我不确定您是否需要在条件中使用 and
或 or
关于mysql - sql查询从mysql中选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56412818/