UNION stacks the rows of two queries into one result:
SELECT email FROM customers
UNION
SELECT LOWER(TRIM(email)) FROM signups_raw;
Rules: both queries return the same number of columns, in the same order, with compatible types. The column names come from the first query. One ORDER BY at the very end sorts the combined result.
UNION removes duplicate rows from the combined result. UNION ALL keeps every row, which is faster and is what you want when stacking things that should all count, such as orders from an old system and a new one. A common bug is using UNION there and losing two genuine rows that happen to look alike.
Add a label column to show where each row came from: SELECT 'order' AS kind, ....