Câu trả lời:
db_update()
không thực hiện bất kỳ giao diện nào có join()
/ innerJoin()
/ vv. vì vậy tôi nghĩ rằng bạn đang bị mắc kẹt với việc sử dụng db_query()
và viết chuỗi truy vấn ra bằng tay.
$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()
. Nếu bạn muốn kiên quyết bám vào tài liệu thì chắc chắn, một điều kiện với truy vấn con sẽ là một lựa chọn. Nhưng như bạn nói, nó sẽ ít hiệu quả hơn và với tôi không giảm "tốt hơn" so với sử dụng truy vấn sql thẳng
Update
không thực hiện bất kỳ join
chức năng nào , vẫn cần sử dụng truy vấn chung cho trường hợp này.