MySQL添加空值

时间:2017-03-01 23:58:25

标签: mysql

我正在进行查询

SELECT ROUND((SUM(refracciones.total)+(serviciosrealizados.total)),2)
FROM refracciones, serviciosrealizados
WHERE refracciones.id_ticket = '$idticket' AND serviciosrealizados.id_ticket = '$idticket'

2张表:

  1. refracciones
  2. serviciosrealizados
  3. 2列:

    1. refracciones.total
    2. serviciosrealizados.total
    3. 目前查询正在运行但是我在两个表中插入数据。

      我希望查询显示refracciones.total + serviciosrealizados.total的总数,如果其中一个字段为空,则显示我的总数为refracciones.total或serviciosrealizados.total

1 个答案:

答案 0 :(得分:1)

如果,例如,id 5仅在serviciosrealizados中,则此查询应该执行您想要的操作:

SELECT ROUND(SUM(IFNULL(r.total, 0)) + IFNULL(s.total, 0), 2)
FROM refracciones r
  LEFT OUTER JOIN serviciosrealizados s ON r.id_ticket = s.id_ticket
WHERE r.id_ticket = 5
UNION
SELECT ROUND(SUM(IFNULL(r.total, 0)) + IFNULL(s.total, 0), 2)
FROM refracciones r
  RIGHT OUTER JOIN serviciosrealizados s ON r.id_ticket = s.id_ticket
WHERE s.id_ticket = 5;

您可能必须忽略任何空行。

这是一个SQLFiddle作为演示。

如果可能,您可能希望查看数据库设计,因为它看起来很尴尬。