。所涉及的表格:
data_ticket。
我的查询如下
select t1.hurtos, t2.fallas,t3.ticket, t1.fecha_carga
from
(select count(ttc) as hurtos,
fecha_carga from data_incidencia
where campo_key_id = 2
group by fecha_carga) t1,
(select count(ttc) as fallas,
fecha_carga from data_incidencia
where campo_key_id = 1
group by fecha_carga) t2,
(select count(ticket) as ticket,
fecha_solicitud as fecha_carga from data_ticket ) t3
where t1.fecha_carga =t2.fecha_carga;
和输出:
但所需的输出是:
请注意,“门票”是2018-05-16重复的值,其中没有门票,可能是一个愚蠢的事情或者分组的情况,但我无法弄明白。
我应该如何修复此查询?
答案 0 :(得分:0)
您有三个子查询,t1
,t2
和t3
。
t1
和t2
已加入,但t3
未加入,因此您获得了隐式cross join。
您正在使用的列名看起来好像要在同一列上加入所有三个:
SELECT t1.hurtos, t2.fallas, t3.ticket, t1.fecha_carga
FROM (...) AS t1,
(...) AS t2,
(...) AS t3
WHERE t1.fecha_carga = t2.fecha_carga
AND t1.fecha_carga = t3.fecha_carga;
自1992年以来,隐式联接已经过时;更好地使用显式连接:
SELECT t1.hurtos, t2.fallas, t3.ticket, fecha_carga
FROM (...) AS t1
JOIN (...) AS t2 USING (fecha_carga)
JOIN (...) AS t3 USING (fecha_carga);