1

I am trying to join two tables on the same database, db2. I am trying to join tablename to tablename2 using the condition tablename.ItemID = tablename2.ItemID. While the values from tablename are selectable from a view, those from tablename2 aren't.

Do I need to specify in what database tablename2 is?

/** 
* Implementation of hook_views_data
*/

function  mydatabase_views_views_data() {
  $data['tablename']['table']['group'] = t('Title name');
  $data['tablename']['table']['base'] = array(
    'field' => 'ItemID',
    'title' => t('db2'),
    'help' => t('Autoincremented ID field, to enable views integration'),
    'database' => 'db2',
    'weight' => -10,
  );

  $data['tablename']['table']['join'] = array(
    'deals_addon' => array(
      'left_field' => 'ItemID',
      'field' => 'ItemID',
    ),
  );

  $data['tablename']['ItemID'] = array(
    'title' => t('Item ID'),
    'help' => t('Item ID'),
    'field' => array(
      'handler' => 'views_handler_field',
      'click sortable' => TRUE,
    ),
    'sort' => array(
      'handler' => 'views_handler_sort',
    ),
    'filter' => array(
      'handler' => 'views_handler_filter_string',
    ),
    'argument' => array(
      'handler' => 'views_handler_argument_string',
    ),
  );

  $data['tablename']['ItemInfo'] = array(
    'title' => t('Item Info'),
    'help' => t('Item Info'),
    'relationship' => array(
      'base' => 'tablename2',
      'base_field' => 'ItemID',
      'handler' => 'views_handler_relationship',
      'label' => t('Label'),
      'title' => t('Title'),
      'help' => t('Help'),
    ),
  );
  return $data;  
}

1 Answer 1

0

Some time ago (D6) I was facing the same problem but then I could not find a solution. I ended up creating database views in my original db looking to the tables of the second db. This way, I was joining tables in default drupal db, which is easy. I dont know the exact changes in the api from d6 -> d7, but this might be an easy solution for you if you cannot solve it other way.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.