Mysql 没有显示所有结果
我试图从所有合作者那里获得某个月的数据。问题是,如果没有某个部门当月的数据,我就不会与该部门发生争执 这就是我正在努力解决的问题Mysql 没有显示所有结果,mysql,sql,Mysql,Sql,我试图从所有合作者那里获得某个月的数据。问题是,如果没有某个部门当月的数据,我就不会与该部门发生争执 这就是我正在努力解决的问题 SELECT t1.ano, t1.mes,t1.departamento_id, t1.departamento_nome, tempo_extra, tempo_ativo, tempo_extra/tempo_ativo AS volume_extra FROM ( SELECT YEAR(`data`) AS ano, MONTH(`data`) AS mes
SELECT t1.ano, t1.mes,t1.departamento_id, t1.departamento_nome, tempo_extra, tempo_ativo, tempo_extra/tempo_ativo AS volume_extra
FROM (
SELECT YEAR(`data`) AS ano, MONTH(`data`) AS mes, departamentos.id AS departamento_id, departamentos.nome AS departamento_nome, SUM(tempo) AS tempo_extra
FROM rh.aprovacoes
LEFT JOIN rh.colaboradores ON colaboradores.id=aprovacoes.colaborador_id
LEFT JOIN rh.departamentos ON departamentos.id=colaboradores.departamento_id
WHERE (tipo = 'BH' OR tipo = 'HE') AND estado=1 AND YEAR(aprovacoes.`data`) = 2016 AND MONTH(aprovacoes.`data`) = 1
GROUP BY colaboradores.departamento_id, MONTH(`data`)
ORDER BY departamentos.nome ASC
) AS t1
LEFT JOIN (
SELECT YEAR(`data`) AS ano, MONTH(`data`) AS mes, departamentos.id AS departamento_id, departamentos.nome AS departamento_nome, SUM(ativo) AS tempo_ativo
FROM rh.processamento
LEFT JOIN rh.colaboradores ON colaboradores.id=processamento.colaborador_id
LEFT JOIN rh.departamentos ON departamentos.id=colaboradores.departamento_id
WHERE YEAR(processamento.`data`) = 2016 AND MONTH(processamento.`data`) = 1
GROUP BY colaboradores.departamento_id, MONTH(`data`)
) AS t2 ON t1.departamento_id = t2.departamento_id
ORDER BY departamento_nome ASC;
如果我得不到任何数据,我想显示字段tempo_extra、tempo_ative和volume_extra等于0。左连接时,将右侧表的条件放在ON子句中,以获得真正的左连接行为。(在WHERE中时,返回常规内部联接结果。)不理解。你能告诉我怎么做吗?
tempo\u extra
列在t1
中,而tempo\u ative
列在t2
中。如果您想以任何方式显示它们,那么您可能需要在mysql
中使用full-join
或其等效项。我认为在mysql中没有full-join或等效项。如果我显示此查询,可能会更容易<代码>选择colaboradores.nome作为colaborador_nome,SUM(tempo)作为tempo_extra从右侧aprovaces左侧加入右侧aprovaces.colaboradores_id=colaboradores.id其中(tipo='BH'或tipo='HE')和estado=1和年份(aprovaces.数据)=2016和月份(aprovaces.
数据)=1组按colaboradores.id,年份(
data)、月份(
data)colaboradores.nome ASC;
我想用tempo\u extra
null显示所有现有的colaborador\u nome
订单,如果aprovaces
表格没有该colaborador\u id