Si los quieres sumados por totales:
Código sql:
Ver originalSELECT Id, IFNULL(SUM(Devengado),0) Devengado, IFNULL(SUM(Presupuesto),0) Presupuesto
FROM a LEFT JOIN b USING(Id)
GROUP BY Id;
Si los quieres listado por ID:
Código sql:
Ver originalSELECT Id, IFNULL(Devengado,0) Devengado, IFNULL(Presupuesto,0) Presupuesto
FROM a LEFT JOIN b USING(Id)
ORDER BY Id;
Nota sinequanon: La primera tabla debe contener todos los registros que siempre están, ya que se usará como pivote de búsqueda. Si un ID de la segunda tabla no está en la primera, es probable que no salga listado. Para evitarlo deberías incluir una tercera tabla al principio que contenga los IDs desde la tabla de donde se originan.