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'