すべてのテーブルの「order_id」というフィールドに基づいて、3 つのテーブルから結果を取得する次のスクリプトがあります。
$sql = "SELECT
o.order_id,
order_product.model,
o.name,
o.value,
GROUP_CONCAT(o.order_id, order_product.model, o.name, o.value SEPARATOR ',') AS Options
FROM `order_option` AS o
LEFT JOIN `order` AS oo on o.order_id = oo.order_id
LEFT JOIN order_product ON o.order_id = order_product.order_id
where oo.order_status_id = 2
group by oo.order_id";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
{
$options=$row['Options'];
print "|$options|";
PRINT "<br>-------------------<br>";
}
問題は、テーブル「order_option」に各 order_id のオプションを含む 2 つ以上の行があることです。
スクリプトによって出力される結果は次のとおりです。
ID、モデル、オプション 1:値、ID、モデル、オプション 2:値
そして、私が必要とするのは:
ID、MODEL、OPTION1:値、OPTION2:値
したがって、すべての行で ID と MODEL が重複することはありません。
どうすればそれを達成できますか?