0

我有 2 张桌子

**Table sale :**

 id_sale    int
 id_projet  int
 price      float
 date       date


**Table sale_ligne:**

id_sale_ligne  int
id_sale        int FK_SALE
id_projet      int
price          float
date           date

当我在 Sale 表上插入时,我能够同时在表 line_sale 上插入查询

 $this->dbAdapter->query('INSERT INTO sale (price, date) VALUES (?, ?)', array('price', 'date'));
    $salesId = $this->dbAdapter->getDriver()->getLastGeneratedValue();
$this->dbAdapter->query('INSERT INTO sale_ligne (price, date, id_sale) VALUES (?,?,?)',array('price', 'date', $salesId));

,我想一键(删除,更新)与销售表有关系的line_sale行,我的意思是当我删除带有(id = 2“示例”)的销售记录时,带有(id_sale = 2)的line_sale将被自动删除,当我更新(价格,日期)以记录(id = 2“示例”)时,更新相同的想法它们将在line_sale上自动更新(id_sale = 2)我使用适配器进行sql请求,我使用这个函数来获取特定销售的 Line_sale

public function getLigneVenteByVente($id)
    {
        $result  = $this->select(function (Select $select) use ($id){
        $select->where(array('id_sale'=>$id));      
        $select->join('sale', ' ligne_sale.id_sale=sale.id ');
        });
        return $result;


    }

谢谢

4

1 回答 1

2

您可以只使用 sql join 或这样:

DELETE FROM table1, table2 WHERE table1.id = (constant) AND table1.id = table2.id

其中常量是要从两个表中删除的 id 值。

顺便说一句,这已经在这个问题中得到了回答。

于 2013-08-05T10:19:06.930 回答