変数が出力と等しくないという問題があります。ペットには 1 人の飼い主がいて、その飼い主が他のペットを飼っているかどうかを確認し、それらをグループ化しようとします。
SELECT
o.id,
o.last_name,
@dog_names := GROUP_CONCAT(concat(p2.name,' (',REPLACE(REPLACE(p.type,'Big Dog','BD'),'Small Dog','LD'),')') SEPARATOR ', ') as dog_names,
@dog_names as dog_variable,
concat(o.last_name,' - ',@dog_names) as label
FROM pets p
LEFT JOIN owners o ON p.owner_id = o.id
LEFT JOIN pets p2 ON p.owner_id = p2.owner_id
WHERE p.name = 'wolfie'
GROUP BY o.id
出力は次のとおりです。
id | last_name | dog_names | dog_variable | label
1647 | Reeve | Wolfie (BD), Ember (BD) | Wolfie (BD) | Reeve - Wolfie (BD)
dog_variable が dog_names と一致しないのはなぜですか?