Antworten:
db_update()
implementiert keine Schnittstellen mit join()
/ innerJoin()
/ etc. Ich denke, Sie müssen db_query()
die Abfragezeichenfolge nicht manuell verwenden und ausschreiben.
$sql = "
UPDATE field_data_field_TEST as ft
left join node as n on ft.entity_id = n.nid
set n.type = :type1
where n.type = :type2";
$args = array(':type1' => 'test', ':type2' => 'foo');
db_query($sql, $args);
db_query()
. Wenn Sie sich strikt an die Dokumentation halten möchten, ist eine Bedingung mit einer Unterabfrage eine Option. Aber wie Sie sagen, es wäre weniger performant und für mich ist es nicht besser, als eine reine SQL-Abfrage zu verwenden
Update
keine join
Funktionen implementiert , muss dennoch die generische Abfrage für diesen Fall verwenden.