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 を持つ 2 つのテーブルが結合されます。次の 3 番目のテーブルに参加するにはどうすればよいですか。

"TABLE_ORDERS_PRODUCTS_ATTRIBUTES" 

と同じ ID を持つ:

"TABLE_ORDERS_PRODUCTS"

使用される ID は次のとおりです。

"orders_products_id"
4

2 に答える 2

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);
于 2012-09-05T11:31:19.243 に答える
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'] . "'");
于 2012-09-05T11:31:09.167 に答える