2012-09-05 72 views
0

我有以下查询:加入左多个表加入

$products_query = 
    tep_db_query("select op.orders_products_id, op.orders_id, op.products_id, ". 
         "op.products_model, op.products_name, op.products_quantity, ". 
         "p.products_id from " . TABLE_ORDERS_PRODUCTS . " op " . 
        " left join " . TABLE_PRODUCTS . " p " . 
        " on (op.products_id = p.products_id) where orders_id = '" . 
        (int)$cuttinglist['orders_id'] . "'"); 

此连接使用相同的ID两个表在一起。如何将我加入一个名为第三表:

"TABLE_ORDERS_PRODUCTS_ATTRIBUTES" 

用相同的ID为:

"TABLE_ORDERS_PRODUCTS" 

所用的ID是:

"orders_products_id" 

回答

2

为了便于阅读你的代码(所以你不需要有这么多的连接和引号,你可以做任何查询,如:

$sql=' 
select 
    op.orders_products_id, 
    op.orders_id, op.products_id, 
    op.products_model, 
    op.products_name, 
    op.products_quantity, 
    p.products_id 
from 
    '.TABLE_ORDERS_PRODUCTS.' op 
     left join '.TABLE_PRODUCTS.' p 
      on op.products_id = p.products_id 
     left join '.TABLE_ORDERS_PRODUCTS_ATTRIBUTES.' Attrib 
      on op.orders_products_id=Attrib.orders_products_id 
where 
    orders_id = "' .(int)$cuttinglist['orders_id'] . '" 
'; 
$products_query = tep_db_query($sql); 
+1

TABLE_ORDERS_PRODUCTS amd TABLE_PRODUCTS是PHP常量,所以您确实需要这些引号(或以其他方式替换它)。 – Sherlock

+0

@ Robinv.G。是的,好点,更新了答案。 +1 – Fluffeh

1
$products_query = 
    tep_db_query("select op.orders_products_id, op.orders_id, op.products_id, ". 
        "op.products_model, op.products_name, op.products_quantity, ". 
        "p.products_id from " . TABLE_ORDERS_PRODUCTS . " op " . 
       " left join " . TABLE_PRODUCTS . " p " . 
       " on (op.products_id = p.products_id) " 
       " left join " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " pa " . 
       " on (op.products_id = pa.orders_products_id) where orders_id = '" . 
       (int)$cuttinglist['orders_id'] . "'");