This is a limiting way to solve the problem. What happens when you add a new payment type? A new table goes up and your JOIN condition on all of your queries that utilize Orders and Payment Types have to be rewritten.
If you might put in more payment types in the future, consider having a single payment type table that will hold the payment type and attributes that are ALWAYS common to all of your payment types, then a separate attribute table that will hold the attributes in rows based on the payment types. This way when you scale things up you increase record count, not object counts (tables and fields).
If you stay with what you have you will need to either write the order number into your Payment Types table so you can join to them, or you will need to write the Payment Type Type as well as the Payment Type Primary Key to the Order table. Something like:
Order Number | Payment Type Type | Payment Type Key
1 PaymentType1 5
2 PaymentType2 5
3 PaymentType1 5
Then:
SELECT
o.Number,
COALESCE(pm1.key, pm2.key),
CASE WHEN o.PaymentTypeType = "PaymentType1"
THEN pm1.pm1_attr1
ELSE pm2.pm2.attr3
END as "Friendly Attribute Name"
FROM ORDER o
LEFT OUTER JOIN PaymentMethod1 pm1 ON
o.PaymentTypeType = "PaymentType1" AND
o.PaymentTypeKey = pm1.key
LEFT OUTER JOIN PaymentMethod2 pm2 ON
o.PaymentTypeType = "PaymentType2" AND
o.PaymentTypeKey = pm2.key
You can see that may get ugly pretty quick. Especially when you add a new PaymentType into the mix a year from now.