0

我有一个包含两个表的查询,我需要再加入一个表,以便获得与订单对应的产品型号。

到目前为止我所拥有的是

$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>";
} 

现在,我有第三个表,其中包含每个订单的产品型号。该表称为“order_product”,它有两个字段“order_id”和“model”(每个订单一条记录)。

我现在所拥有的结果是

ID,选项1:价值,选项2:价值

我想要完成的是

ID,型号,选项1:值,选项2:值

模型应该来自第三个表“order_product”的位置

任何建议都受到高度赞赏。谢谢

4

3 回答 3

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

但请记住,加入 bec 的层次结构可能与以前的表相关,但可能尚未加入

于 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 回答
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 回答