0

I am trying to join two tables in a second database (they are both in the same database, db2). I am trying to join tablename to tablename2 on the field tablename.ItemID = tablename2.ItemID. While the values from tablename one are selectable in views, those from tablename2 are not appearing. Am I missing something, do I need to specify what database tablename2 is in?

<?php

/** 
* Implementation of hook_views_data
*/

function  mydatabase_views_views_data() {
    error_log("Loading views");
    $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;  
}
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, privacy policy and cookie policy

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