it-swarm.com.de

LEFT JOIN mit db_select ()

Ich versuche einen Link-Join zu machen, aber es funktioniert nicht.

Ich habe 2 Tische:

TABLE profile
- uid
- pid

TABLE field_data_field_naam
- entity_id
- field_naam_value

Ich möchte field_naam_value Auswählen, wobei uid gleich .. und pid gleich entity_id Ist. Meine normale Abfrage sieht folgendermaßen aus:

SELECT fdfm.field_naam_value, pf.uid
FROM field_data_field_naam fdfm
LEFT JOIN profile pf
ON fdfm.entity_id=pf.pid
WHERE pf.uid = 4

Wenn ich dies in meiner Datenbank ausführe, funktioniert es. Dann habe ich folgendes:

$naam = db_select('field_data_field_naam', 'fdfm')
     ->fields('fdfm', array('field_naam_value'));
$naam->leftJoin('profile', 'pf', 'fdfm.entity_id = pf.pid');
$naam->condition('uid', 4)
     ->execute();

Und wenn ich folgendes mache:

foreach ($naam as $record) {
    die;
}

nichts passiert ... (er tötet die App nicht). Es wurde auch versucht, ->fetchAll() hinzuzufügen, aber kein Erfolg.

7
nielsv

Verwenden Sie den folgenden Code zum Abrufen von Werten. Es wird dir geben field_naam_value Felddaten.

$naam = db_select('profile', 'pf');
$naam->join('field_data_field_naam', 'fd', 'pf.pid = fd.entity_id');
$all_names = $naam->fields('fd', ['field_naam_value'])
  ->condition('pf.uid', 4, '=')
  ->execute()
  ->fetchAll();
foreach ($all_names as $record) {
  die;
}
12
TBI Infotech