Si A es única y puede tener relación con B o C pero no con las dos a la vez entonces es una unión de dos selects right inner join.

Usease:

select a.campo1, a.campo2, b.campo1
from tabla_a a join tabla_b b on a.campoclave=b.campoclave
union all
select a.campo1, a.campo2, c.campo1
from tabla_a a join tabla_c c on a.campoclave=c.campoclave

OJO: b.campo1 y c.campo1 deben ser compatibles para que el UNION ALL funcione


Aunque he de reconocer que la opción de Txema es buena siempre y cuando tengas en cuenta que un right inner join no deviuelve registro si el registro foráneo no existe. Habría que usar left join (o exception join que no es ANSI pero está en varios SGBDs) y jugar con los NULL. Suena a coñazo y lo es.

Pero vamos, la solución chorra total es la que te he puesto yo :win


Sobre la de mike88, seguro que funciona pero es un poquillo rebuscadilla