Existe alguma maneira de fazer db_update()
a seguinte consulta?
UPDATE field_data_field_TEST as ft
left join node as n on ft.entity_id = n.nid
set n.type='test'
where n.type='foo'
Eu tentei usar, db_update()->join();
mas não funcionou.
db_update()
não implementa nenhuma interface que tenha join()
/ innerJoin()
/ etc. métodos, então eu acho que você está preso ao uso db_query()
e gravação manual da string de consulta.
$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()
. Se você deseja manter rigidamente a documentação, com certeza, uma condição com uma subconsulta seria uma opção. Mas, como você diz, seria menos eficiente e, para mim, não caiu 'melhor' do que usar uma consulta sql diretaUpdate
não implementa nenhumajoin
função, ainda é necessário usar a consulta genérica para este caso.