No sé si he entendido bien la estructura y tampoco tengo los nombres de los campos de las tablas, pero te diré que lo que quieres es traerte de dos tablas relacionadas con la tabla compra1, pero que no tienen relación entre sí. Creo que deberías utilizar esto o algo parecido
Código sql:
Ver original(SELECT compra1.campo1, factura1.campo1 CAMPO, factura1.fecha_elabora FECHA FROM compra1 INNER JOIN factura1 ON factura1.id = compra1.idfactura WHERE YEAR (factura1.fecha_elabora) = 2008)
UNION ALL
(SELECT compra1.campo1, factura2.campo1 CAMPO, factura2.fecha_elabora FECHA FROM compra1 INNER JOIN factura2 ON factura2.id = compra1.idfactura WHERE YEAR (factura2.fecha_elabora)=2008) ORDER BY CAMPO