Du kan skapa en union och använda ett alias i frågan för att definiera olika fältmappningar för samma namn, om det inte finns något fält i en tabell castar du bara aliaset för ett tomt fält:
SELECT (staff.name) as name FROM users
left JOIN staff USING (user_id)
UNION
SELECT (customers.first_name) as name FROM users
left JOIN customers USING (user_id);
Om användar-ID är en PK/FK kommer det endast att returneras av en tabell.