2017-06-29 4 views
0

Ich bin neu bei Node.js. Ich benutze Knex zum Abfragen. Ich muss zwei Tabellen aus zwei verschiedenen Datenbanken verbinden. Kann mir jemand sagen, wie das möglich ist?Knex um Tabellen aus zwei Datenbanken zu verbinden

knex.select('id', 'full_name','email', 'mobile_country_code', 'mobile', knex.raw('1 as active_status')).from('users').where(whereData).union(function() { 
     this.select('id','full_name', 'email', 'mobile_country_code', 'mobile', knex.raw('0 as active_status')).from('users_temp').where(whereData); 
    }).then(function(data) { 
     next(null, data); 
    }).catch(function(err) { 
     next(err.toString()); 
    }); 
+0

Könnten Sie einfachen Fall der Ebene SQL-Abfrage hinzufügen, die Sie versuchen, zu erstellen? –

+0

( SELECT u1.id, u1.full_name, u1.email, u1.mobile_country_code, u1.mobile, 1 AS active_status, u2.user_timeline_pic FROM db1.users AS u1 JOIN db2.users AS u2 = ON u1.id u2.id ) UNION ( SELECT id, full_name, E-Mail, mobile_country_code, mobile, 0 AS active_status, 'default/user_profile_pic.png' AS user_timeline_pic VON db1.users ) – Pillai

+0

Was ich gegeben oben brauchen. Vielen Dank für Ihre Antwort @Mikael Lepistö – Pillai

Antwort

0
knex 
    .select(
    'users.id','users.full_name', 'users.email', 
    'users.mobile_country_code', 'users.mobile', 
    'loc.user_profile_pic', 'loc.user_timeline_pic' 
) 
    .from('users') 
    .leftJoin(config.project_db + '.users as loc', 'loc.id', '=', 'users.id') 
    .where(whereData).union(function() { 
    this.select(
     'id','full_name', 
     knex.raw('\''+constants.images.default_user_profile_pic+'\' as user_profile_pic, \''+constants.images.default_user_timleline_pic+'\' as user_timeline_pic'), 
     'email', 'mobile_country_code', 'mobile' 
    ) 
    .from('users_temp').where(whereData); 
    }); 
Verwandte Themen