2013-04-27 100 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