nette/database

Missing LEFT JOIN in DELETE

TonnyJe opened this issue · 0 comments

Version: ^3.0

Bug Description

Wrong SQL generation for joining tables with DELETE.

Steps To Reproduce

This code

$this->database->table('is_document_item')
                ->where('document.code', 202750006)
                ->where('amount', 0)
                ->fetchAll();

generates this query:

SELECT `is_document_item`.`id` 
FROM `is_document_item` 
LEFT JOIN `is_prijemka_vydejka` `document` ON `is_document_item`.`document_id` = `document`.`id` 
WHERE (`document`.`code` = 202750006) AND (`amount` = 0)

which is exactly what is expected.

But if I change ->fetchAll() to ->delete() so its generate this:

DELETE 
FROM `is_document_item` 
WHERE (`document`.`code` = 202750006) AND (`amount` = 0)

which causes this error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'document.code' in 'where clause'

Expected Behavior

I think that is clear.