Puoi usare un LEFT JOIN e un RIGHT JOIN:
SELECT * FROM tableA LEFT JOIN tableB ON tableA.b_id = tableB.id
UNION ALL
SELECT * FROM tableA RIGHT JOIN tableB ON tableA.b_id = tableB.id
WHERE tableA.b_id IS NULL
Ci sono anche alcune informazioni su Wikipedia su questo argomento:Full outer join .
L'articolo di Wikipedia suggerisce di utilizzare UNION in MySQL. Questo è leggermente più lento di UNION ALL, ma soprattutto non darà sempre il risultato corretto:rimuoverà le righe duplicate dall'output. Quindi preferisci usare UNION ALL invece di UNION qui.