LEFT JOIN crossing with multiple keys

Is there anyway to cross tables with 2 keys, in case the first one doesn’t exist?

For example:

I have a LEFT table called order that contains a field called key_1 and a RIGHT table called pre_order where key_1 is the primary key. The thing is: due to systemic errors, not all registers from order contain a key_1 value, even though they should. So, when left joining those tables, some data from my pre_order table will be missing. If key_1 is empty in the order table, I’d like it to cross with a different key. In this case, a CONCAT of multiple fields that are common to both tables, that would garantee an artificial primary key.

I thought about using COALESCE, but in a first glance, it wouldn’t work.

The logic is:

IF key_1 is not null nor empty, cross both tables with key_1

ELSE, cross it with a CONCAT of multiple common fields of both tables.

Unfortunately, it looks like the ON statement doesn’t let me work freely around logic statements.