我有以下查询:
select ctc.sentencia ,count(lg.id_libro) as cantidad
from cat_tipo_sentencia as ctc
left join libro_gobierno as lg on lg.cod_tiposentencia = ctc.id_sentencia
left join expedientes as e on e.id_expedientes = lg.cod_expediente
GROUP BY ctc.sentencia
我想计算“ cat_tipo_sentencia”的“ libro_gobierno”中的记录,但是在有条件的情况下,它不会向我显示具有0条记录的记录;在删除条件(如果它们显示时)时,我该如何进行条件处理,以便得出结果返回那些没有记录的?
-这是条件查询
select ctc.sentencia ,count(lg.id_libro) as cantidad
from cat_tipo_sentencia as ctc
left join libro_gobierno as lg on lg.cod_tiposentencia = ctc.id_sentencia
left join expedientes as e on e.id_expedientes = lg.cod_expediente
where e.cod_distrito= 130
and e.cod_estado_pro=13
and ctc.id_sentencia in (1,8,10)
GROUP BY ctc.sentencia
并且当尝试使用“ HAVING”时,由于条件不在组中,因此出现错误
PD:对不起,英语,我正在使用翻译器:(
LEFT OUTER JOIN
中,如果在WHERE
子句中过滤外部表,则结果将与执行INNER
联接时的结果相同。主表中在联接表中不匹配的行将被过滤掉。您可以通过在联接的ON
子句中而不是在WHERE
子句中进行过滤来避免这种情况。
SELECT
ctc.sentencia
,count(lg.id_libro) AS cantidad
FROM
cat_tipo_sentencia AS ctc
LEFT JOIN
libro_gobierno AS lg
ON lg.cod_tiposentencia = ctc.id_sentencia
LEFT JOIN
expedientes AS e
ON e.id_expedientes = lg.cod_expediente
AND e.cod_distrito = 130
AND e.cod_estado_pro = 13
WHERE
ctc.id_sentencia IN (1,8,10)
GROUP BY
ctc.sentencia
我尝试使用常用词。我希望这对您来说是可以的!