テーブルAとテーブルBからデータを取り出すクエリがあります。テーブルAが1である2つの間に1対多数の関係があります。私はmysqlと良いスーパーではない、と私はこのクエリを実行することができますか?テーブルBのすべてのユニークな行に対してテーブルAの情報を複製するので、データをフェッチするループが表示目的のためにすべてを整理する方法を見つけ出す唯一の方法でした。誰かが私に良い方法を示すことができるかどうか疑問に思っていましたか?クエリの最適化/データ検索
$sql = "
SELECT core.`id` AS attribute_id, core.`gender` as attribute_gender , core.`order` as attribute_order, core.`name` as attribute_name, coreval.`id` AS value_id, coreval.`value` as value_name
FROM `core_attributes` core
LEFT OUTER JOIN `core_attribute_values` coreval
ON core.id = coreval.attribute_id
WHERE core.active = 1
ORDER BY attribute_order
";
try {
$stmt = $dbh->prepare($sql);
$stmt->execute(array(':agency_id' => $agency_id));
$result = array();
while($row = $stmt->fetch()) {
$result[$row['attribute_id']]['attribute_id'] = $row['attribute_id'];
$result[$row['attribute_id']]['attribute_gender'] = $row['attribute_gender'];
$result[$row['attribute_id']]['attribute_order'] = $row['attribute_order'];
$result[$row['attribute_id']]['attribute_name'] = $row['attribute_name'];
$result[$row['attribute_id']]['values'][$row['value_id']] = $row['value_name'];
}
return $result;
}
編集は:私の質問