0

2 つのテーブルを含むクエリがあり、注文に対応する製品モデルを取得できるように、もう 1 つ JOIN する必要があります。

私がこれまでに持っているのは

$sql = "SELECT 
  o.order_id, 
  o.name, 
  o.value, 
  GROUP_CONCAT(o.order_id,  o.name, o.value SEPARATOR ',') AS Options 
FROM `order_option` AS o 
LEFT JOIN `order` AS oo on o.order_id = oo.order_id
where oo.order_status_id = 2 
group by o.order_id";

mysql_query("SET NAMES 'utf8'");
$result = mysql_query($sql); 
while($row = mysql_fetch_assoc($result))
 {
$options=$row['Options'];
print "$options";

    PRINT "<br>-------------------<br>";
} 

これで、各注文の製品モデルを含む 3 番目のテーブルができました。このテーブルは「order_product」と呼ばれ、「order_id」と「model」の 2 つのフィールド (注文ごとに 1 つのレコード) があります。

結果として今私が持っているのは、

ID、オプション 1: 値、オプション 2: 値

私が成し遂げたいことは、

ID、モデル、オプション 1: 値、オプション 2: 値

モデルが 3 番目のテーブル「order_product」から取得される場所

どんな提案でも大歓迎です。ありがとう

4

3 に答える 3

0

これは目的を果たすはずです:

SELECT 
o.order_id, 
order_product.model,
o.name, 
o.value, 
GROUP_CONCAT(o.order_id,  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 o.order_id
于 2013-02-08T10:38:05.547 に答える
0

このようにしてみてください

SELECT table1.* from table1
JOIN table2 as lnk1 on table1.id = table2.tab1_id AND
JOIN table3 as lnk2 on table2.id = table3.tab2_id -->here you can use table1 as to join also

ただし、一部のテーブルによる結合の階層は、以前のテーブルと関連している可能性がありますが、まだ結合されていない可能性があることに注意してください

于 2013-02-08T10:35:49.743 に答える
0
$sql = "SELECT 
  o.order_id, 
  o.name, 
  o.value, 
  GROUP_CONCAT(o.order_id,  o.name, o.value SEPARATOR ',') AS Options,
  op.model 
FROM `order_option` AS o 
INNER JOIN `order` AS oo on o.order_id = oo.order_id
INNER JOIN `order_product` AS op on oo.order_id = op.order_id
where oo.order_status_id = 2 
group by o.order_id";

そのように?

すべてのテーブルにリンクしているため、注文 ID 番号に追加の結合を行うだけです。

于 2013-02-08T10:36:01.217 に答える