Блог пользователя - Dstan

db_select, innerJoin - различные условия для выполнения condition

29 августа 2013 в 22:31
<?php$query = db_select('index', 'n');
    $query->innerJoin('offer', 'o', 'n.nid = o.entity_id');
    $query->leftJoin('product', 'p', 'n.nid = p.entity_id');
    $query->fields('n', array('nid'));
 
    $query->condition('offer_tid', $geo_id, 'in');      // condition №1
 
    $query->condition(                                  // condition №2
            db_or()              
              ->condition('product_tid', $geo_id, 'in')
              ->condition('product_tid', null)
          );
?>

Кто нибудь может помочь реализовать условие для выполнения condition или подсказать аналогичное решение другим способом:

1. если в leftJoin были подключены null значения, то должна срабатывать только condition №1
2. если в leftJoin были подключены не null значения, то должна срабатывать только condition №2.