Du kan använda en LEFT JOIN och en 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
Det finns också lite information om detta ämne på Wikipedia:Fullständig yttre anslutning .
Wikipedia-artikeln föreslår att du använder en UNION i MySQL. Detta är något långsammare än UNION ALL, men ännu viktigare ger det inte alltid rätt resultat - det tar bort dubblerade rader från utdata. Så föredrar att använda UNION ALL istället för UNION här.