左結合を実行しようとしていますが、機能しません。
2つのテーブルがあります。
_TABLE profile
- uid
- pid
TABLE field_data_field_naam
- entity_id
- field_naam_value
_
_field_naam_value
_を選択します。ここで、uid
は..に等しく、pid
は_entity_id
_に等しいです。私の通常のクエリは次のようになります:
_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
_
私のデータベースでこれを実行すると、機能します。それから私はこれを持っています:
_$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();
_
そして私が次のことをすると:
_foreach ($naam as $record) {
die;
}
_
何も起こりません...(彼はアプリを殺しません)。 ->fetchAll()
も追加しようとしましたが、成功しませんでした。
値を取得するには、以下のコードを使用します。 field_naam_value
フィールドデータ。
$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;
}