2013-04-27 33 views
0

如何从一个查询中的两个不同表中删除行? 查询的一部分是:WHERE Lendings.Id =(我想要删除的ID)从内部连接的两个表中删除

Column“ProductId”是指Products表中的“Id”列。

Table: Lendings 
Id - ProductId 

Table: Products 
Id - Name 

编辑:

我做到这一点,而不是:)

function DeleteLending($lendingid, $productid) 
{ 
    global $conn; 
    $sql = "DELETE FROM Lendings WHERE Id = ?; DELETE FROM Products WHERE Id = ?;"; 
    $params = array($lendingid, $productid); 
    $stmt = sqlsrv_query($conn, $sql, $params); 
} 
+0

@Strawberry INNOdb表“sql-server”? – 2013-04-27 15:39:55

+0

oops - 错过了 – Strawberry 2013-04-27 15:40:37

+0

'DeleteLending()'表示您想要主要删除贷款。为什么它也会导致产品被删除?我有一个解决方案,但我需要首先了解您的要求。 – 2013-04-27 15:59:57

回答

3

你不能。

DELETE一次只能从一个表中删除。但是,您可以使用联接子句在一个表中删除,具体取决于另一个表中的数据,但不能从一个语句中的两个表中删除。

发出两条删除语句。

+0

好的。然后它需要知道它应该在Products表中删除的行。也许用选择查询。 – 2013-04-27 15:42:33

+0

WHERE Products.Id = Lendings.ProductId – 2013-04-27 15:44:09

+0

好的,谢谢。我使用两个陈述。 – 2013-04-27 15:54:37