2017-02-15 16 views
0

Я написал код для извлечения города, электронной почты, улицы и других деталей клиентов из таблицы order_address. Вопросы здесь для каждого заказа есть две строки, где для одного строка address_type - shipping, а для другого - billing. При запросе система автоматически извлекает данные из второй строки, которая является биллинговой. Я хочу данные строки с доставкой типа адреса. Как это можно достичь? Может ли кто-нибудь дать мне знать, как я могу использовать предложение where здесь, чтобы фильтровать строки только с помощью address_type = "shipping".Как добавить предложение where с левым соединением

$select = $collection->getSelect(); 
      $select->joinLeft(array('payment' => $collection->getTable('sales/order_payment')), 'payment.parent_id=main_table.entity_id', array('payment_method' => 'method')); 
      $select->joinLeft(array('email' => $collection->getTable('sales/order_address')), 'email.parent_id=main_table.entity_id', array('customer_email' => 'email','customer_phone' => 'telephone','shipping_street' => 'street','shipping_city' => 'city','shipping_postcode' => 'postcode','shipping_region' => 'region','shipping_country' => 'country_id')); 
      $select->join('sales_flat_order_item', '`sales_flat_order_item`.order_id=`main_table`.entity_id', array('skus' => new Zend_Db_Expr('group_concat(`sales_flat_order_item`.sku SEPARATOR ", ")'))); 
      $select->group('main_table.entity_id'); 
     } 

ответ

1

Попробуйте под кодом ниже, пожалуйста, это поможет. Я просто добавил email.address_type = отправку кода в строку # 3.

$select = $collection->getSelect(); 
      $select->joinLeft(array('payment' => $collection->getTable('sales/order_payment')), 'payment.parent_id=main_table.entity_id', array('payment_method' => 'method')); 
      $select->joinLeft(array('email' => $collection->getTable('sales/order_address')), 'email.parent_id=main_table.entity_id AND email.address_type="shipping"', array('customer_email' => 'email','customer_phone' => 'telephone','shipping_street' => 'street','shipping_city' => 'city','shipping_postcode' => 'postcode','shipping_region' => 'region','shipping_country' => 'country_id')); 
      $select->join('sales_flat_order_item', '`sales_flat_order_item`.order_id=`main_table`.entity_id', array('skus' => new Zend_Db_Expr('group_concat(`sales_flat_order_item`.sku SEPARATOR ", ")'))); 
      $select->group('main_table.entity_id'); 
     } 
+0

Это принесло мне данные, которые я искал. Спасибо :) –

+0

Больше всего Добро пожаловать @AkshayVasu – user247217