mysql - 查询结果 null 或 0

标签 mysql sql

我正在尝试预约返回所有市政当局和所有专业......因为即使在该市政当局也没有任何此类专业的提供者,它应该以值 0 或 null 列出......目前我正在处理这个查询,我需要一些帮助。

select 
   cid.txt_cidade, esp.txt_especialidade, count(*) as QTD
from
   tb_associadoespecialidade as assesp
left join 
   tb_especialidade as esp on esp.id_especialidade = assesp.id_especialidade
left join 
   tb_associado as ass on ass.id_associado = assesp.id_associado
left join 
   tb_cidade as cid on cid.id_cidade = ass.id_cidade
where 
   ass.id_categoria = 1 and txt_cidade like 'Tupã'
group by 
   cid.txt_cidade, esp.txt_especialidade
order by 
    cid.txt_cidade desc;

图表

diagrama

结果预期

TXT_CIDADE ------ TXT_ESPECIALIDADE --------- count QTD
SP -------------- ESPEC01 ------------------- 10
SP -------------- ESPEC02 ------------------- 5
SP -------------- ESPEC03 ------------------- 15
RJ -------------- ESPEC01 ------------------- NULL
RJ -------------- ESPEC02 ------------------- 5
RJ -------------- ESPEC03 ------------------- NULL

最佳答案

试试这个:

select 
    cid.txt_cidade, esp.txt_especialidade, count(*) as QTD
from
    tb_associadoespecialidade as assesp
left join 
    tb_especialidade as esp on esp.id_especialidade = assesp.id_especialidade
left join 
    tb_associado as ass on ass.id_associado = assesp.id_associado
        and ass.id_categoria = 1
left join 
    tb_cidade as cid on cid.id_cidade = ass.id_cidade
where
    txt_cidade like 'Tupã'
group by 
    cid.txt_cidade, esp.txt_especialidade
order by 
    cid.txt_cidade desc;

当您在外连接表的字段上应用 where 子句时,您可能会无意中丢弃记录。通过将所需的过滤放在连接条件中,您仍然会在不满足该条件的情况下获得空值。看我的回答here了解更多详情。

关于mysql - 查询结果 null 或 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43919654/

相关文章:

MYSQL left join (if id is in other table then 1 else 0)

mysql - 从触发器中获取良好的成功通知消息

sql - XML 解析 : line 1, 字符 80,输入意外结束

java - 使用 jdbcTemplate 进行分页

php - 从 BlackBerry 应用程序访问 MySQL 表

mysql - 如何获取mysql中两个表中列之间的匹配计数

python - 将列添加到查询集和 django-table2 表

mysql - PHP6 第 3 章 - #1215 - 无法添加外键约束

sql - UNION前后join的查询性能

php - MySQL-IF 语句错误