mysql - sql查询从mysql中选择记录

标签 mysql sql

可以建议我从 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

我不确定您是否需要在条件中使用 andor

关于mysql - sql查询从mysql中选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56412818/

相关文章:

MySQL 触发器导致死锁,通过锁表解决

python - 遍历元组内的元组并使用元组内的字符串作为变量

mysql - 如何关联两个未通过键直接连接的mysql表

python - 存储 MySql 查询结果以便更快地重用

php - 使用 jQuery 提交和显示数据 - 问题

mysql - 如何锁定 MySQL 表以防止更新,直到执行两个单独的 select 语句

sql - 查询列出每个行项目但只列出总计一次

c# - 插入前检查重复项 (C#.net)

MySQL 错误 : Inserting form data into Database

SQL Server 2016 - 动态数据屏蔽 (DDM)