Odpowiedzi:
db_update()nie implementuje żadnych interfejsów, które mają join()/ innerJoin()/ etc. metody, więc myślę, że utknąłeś przy użyciu db_query()i ręcznym zapisywaniu ciągu zapytania.
$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(). Jeśli chcesz ściśle trzymać się dokumentacji, to na pewno będzie warunek z podzapytaniem. Ale, jak mówisz, byłoby mniej wydajne i dla mnie nie spadło „lepsze” niż użycie prostego zapytania SQL
Updatenie implementuje żadnych joinfunkcji, nadal muszę użyć ogólnego zapytania dla tego przypadku.