2013-04-27 2 views
0

Как удалить строки из двух разных таблиц в одном запросе? Часть запроса: WHERE Lendings.Id = (идентификатор, который я хочу удалить)Удалить из двух таблиц с внутренним соединением

Столбец «ProductId» относится к столбцу «Идентификатор» в таблице «Продукты».

Table: Lendings 
Id - ProductId 

Table: Products 
Id - Name 

EDIT:

Я делаю это вместо :)

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"? –

+0

oops - пропущено это – Strawberry

+0

'DeleteLending()' указывает, что вы хотите удалить кредитование в первую очередь. Почему это приводит к удалению Продукта? У меня есть решение, но сначала я должен понять ваши требования. –

ответ

3

Вы не можете.

DELETE удаляет только один стол за раз. Однако вы можете использовать предложения join для удаления в одной таблице, в зависимости от данных в другой таблице, но вы не можете удалить из двух таблиц в одном выражении.

Выпуск двух инструкций удаления.

+0

Хорошо. Тогда ему нужно знать, что Row It должно удалить в таблице Products. Может быть, с выбранным запросом. –

+0

WHERE Products.Id = Lendings.ProductId –

+0

Хорошо, спасибо. Я использую два утверждения. –