是否有與使用Zend_Db模塊的以下SQL相當的內容?如何使用Zend_Db來更新使用聯接的多個表?
UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;
的mysql manual狀態
...多表UPDATE語句可以使用任何類型的 SELECT語句,比如LEFT JOIN聯接允許的。
是否有與使用Zend_Db模塊的以下SQL相當的內容?如何使用Zend_Db來更新使用聯接的多個表?
UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;
的mysql manual狀態
...多表UPDATE語句可以使用任何類型的 SELECT語句,比如LEFT JOIN聯接允許的。
您可以隨時執行查詢字符串。
$db->query("UPDATE items,month SET items.price=month.price WHERE items.id=month.id")
聲明:我還沒有測試過它。
對於MySQL,您可以使用JOIN
(左側,右側或內側)的UPDATE
,方法與您在SELECT
語句中的方式相同。
您的代碼應該是這樣的:
$sql = <<<END
UPDATE table1
INNER JOIN table2 ON table1.id = table2.other_id
SET table1.newvalue = 'value'
WHERE table1.id = 99
AND table2.other_value = 'value'
END;
$result = $db->query($sql);
的$result
變量將包含與您的適配器類型的對象。我使用PDO_MYSQL,所以我最終得到了一個Zend_Db_Statement_Pdo
對象。