2つのテーブルがあります。1つはと呼ばれ、もう1つはcustomer
と呼ばれcustomer_attributes
ます。
アイデアは、customerテーブルがコア顧客データを保持し、アプリケーションをカスタマイズして、使用方法に応じて追加の属性をサポートできるようにすることです。
customer_attributes
次の3つの列があります。
customerID
key1
value1
指定されている場合は追加の属性を使用して行全体を取得できますか?指定されていない場合はデフォルトでNULLになりますか?次のクエリを使用していますが、両方の属性が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')
この場合、私が興味を持っている2つの属性は、「wedding_date」と「test」と呼ばれます。