Recuperar una fila, con datos de la tabla de pares clave-valor en MySQL

Tengo dos mesas, una llamadacustomer y uno llamadocustomer_attributes.

La idea es que la tabla de clientes contenga los datos centrales de los clientes, y la aplicación se puede personalizar para que admita atributos adicionales, dependiendo de cómo se use.

customer_attributes tiene las siguientes 3 columnas:

customerID
key1
value1

¿Puedo recuperar la fila completa, con cualquier atributo adicional si se especifica, por defecto a NULL si no? Estoy utilizando la siguiente consulta, pero solo funciona si ambos atributos existen en la tabla de atributos de clientes.

SELECT `customer`.*, `ca1`.`value1` AS `wedding_date`, `ca2`.`value1` AS `test` 
FROM `customer` 
LEFT JOIN `customer_attributes` AS `ca1` ON customer.customerID = ca1.customerID 
LEFT JOIN `customer_attributes` AS `ca2` ON customer.customerID = ca2.customerID 
WHERE (customer.customerID = '58029') 
   AND (ca1.key1 = 'wedding_date') 
   AND (ca2.key1 = 'test')

En este caso, los dos atributos que me interesan se llaman 'wedding_date' y 'test'

Respuestas a la pregunta(3)

Su respuesta a la pregunta