php - Mysql查询如何返回空值组?

标签 php mysql

我有一个 mysql 查询,它返回按类别分组的空床/房间。但是,如果类别中没有房间,则不会显示该组,我希望即使没有空房间,该组也会显示空/空值。

select `rct`.`room_category` AS `room_category`,
    group_concat(`rn`.`room_name` separator ',') AS `vacant_beds` 
    from ((`room_name` `rn` join `room_category` 
    `rct` on((`rn`.`room_category` = `rct`.`id`))) 
    left join `patient_detail` `pd` on(((`rn`.`id` = `pd`.`bed_type`) 
    and (isnull(`pd`.`discharge_date`) or (now() between `pd`.`admission_date` and   `pd`.`discharge_date`))))) 
    where isnull(`pd`.`id`) group by `rn`.`room_category`

查询结果如下: room_category vacant_beds

MALE GENERAL WARD    MG-5
FEMALE GENERAL WARD  FG-2,FG-3,FG-4
MOTHER CHILD WARD    MC-1,MC-3,MC-4
NICU                 NICU-8,NICU-4,NICU-5,NICU-6,NICU-1,NICU-7,NICU-2
CLASSIC              CL-9,CL-4,CL-5,CL-7,CL-8
DELUXE               DLX-6,DLX-3,DLX-4,DLX-5

在上面的结果中,双床房缺失,因为没有空床位。 我怎样才能实现这一目标?

最佳答案

您需要查询:一个查询您已有的空床位,另一查询查询没有空床位的团体,这里还包括“no vacant”AS vacant_ Beds

创建第二个查询的一个便捷方法是与第一个查询进行匹配,查找缺失的类别:SELECT rct.Room_category, ""as vacant_room FROM rct LEFT JOIN old_query on ... WHERE old_query.room_category IS NULL

然后只需将两个查询UNION即可。

关于php - Mysql查询如何返回空值组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29591335/

相关文章:

mysql - 结合索引性能与可选的 where 子句

MySQL 查询和连接表

php - 连接失败 : Connection refused mysql (LAMP)

php - 在 magento 2 中重新生成 URL

根据条件进行 JOIN 的 MySQL 语法

java - 使用 JComboBox 从 MySQL 数据库动态选择信息

php - 开源 PHP 表单/调查引擎

php - laravel excel读取文件而不导入数据库

php - 在 PHP 中按天获取总销售额

mysql - 无法使用 CI 过程返回结果表