2016-04-01 9 views
0

In hook_views_query_alter JOIN bauen i Abfrage wie folgt verbinden:Ansichten hook_views_query_alter

$join = new views_join(); 
$join->table = 'table_2'; 
$join->field = 'field_2'; 
$join->left_table = 'table_1'; 
$join->left_field = 'field_1'; 
$join->type = 'LEFT'; 
$join->extra = array(
    array(
    'table' => 'table_2', 
    'field' => 'field_3', 
    'value' => 'table_1.field_4', 
), 
); 

Die Abfrage sollte wie folgt aussieht:

LEFT JOIN {table_2} table_2 ON table_1.field_1 = table_2.field_2 AND table_1.field_3 = table_2.field_4 

Mein Problem ist hier 'Wert' => ‚table_1.field_4 '. Ich kann keinen Wert als Feld festlegen. Es behandelt es als Zeichenfolgenwert. Also bei der und in meiner Abfrage habe ich unerwünschte einfache Anführungszeichen.

So am Ende meiner Frage wie folgt aussieht:

LEFT JOIN {table_2} table_2 ON table_1.field_1 = table_2.field_2 AND table_1.field_3 = 'table_2.field_4' 

Antwort

0

Ich bin mir nicht sicher, ob es die beste Lösung, aber diese:

$join = new views_join(); 
$join->table = 'table_2'; 
$join->field = 'field_2'; 
$join->left_table = 'table_1'; 
$join->left_field = 'field_1'; 
$join->type = 'LEFT'; 

$join->extra = 'table_1.field_3 = table_2.field_4'; 

Arbeiten für mich.