【问题标题】:Delete a row from Zend_Db_Table using JOIN使用 JOIN 从 Zend_Db_Table 中删除一行
【发布时间】:2011-11-30 09:55:47
【问题描述】:

我需要使用引用 rence 表的 Zend_Db_Table 删除记录。 在 SQL 中,查询如下所示:

DELETE t1 FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;

有没有比下面的代码更优雅的方法?

$table = new Application_Model_DbTable_T1();
$sql = 'DELETE t1 FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;';
$table->getAdapter()->query($sql);

我找到了similar topic,看起来我应该使用$table->getAdapter()->query($sql);,但我希望做得更好。

【问题讨论】:

    标签: php zend-framework delete-row zend-db-table


    【解决方案1】:

    不,你描述它的方式是正确的。

    我假设Application_Model_DbTable_T1 扩展了Zend_Db_Table_Abstract 或其子类。 Zend_Db_Table_Abstract 的问题在于它只适用于单个表。而且您正试图在此查询中访问多个表。

    所以执行此操作的方式与您正在执行的方式相同。检索不依赖表的适配器,因此可以同时与多个表交互。

    TL;DR:这是正确的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 2011-02-15
      • 1970-01-01
      • 2021-07-12
      • 2023-04-07
      • 2013-03-09
      相关资源
      最近更新 更多