J'ai deux tables, l'une appelée customer
et l'autre customer_attributes
. L'idée est que la table client contient les données client de base et que l'application peut être personnalisée pour prendre en charge des attributs supplémentaires en fonction de la façon dont elle est utilisée.Récupération d'une ligne, avec des données provenant d'une table de paire clé-valeur dans MySQL
customer_attributes
a les 3 colonnes suivantes:
customerID
key1
value1
Puis-je récupérer la ligne complète, avec tous les attributs supplémentaires si spécifié, par défaut NULL sinon? J'utilise la requête suivante, mais cela ne fonctionne que si les deux attributs existent dans la table customer_attributes.
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')
Dans ce cas, les deux attributs qui me intéressent sont appelés « wedding_date » et « test »
Un grand merci à vous trois pour les réponses - Ada obtient la tique d'être le premier. Une différence subtile dont je n'avais pas conscience! –