-
-
Notifications
You must be signed in to change notification settings - Fork 252
Support delete with join DELETE alias FROM tbl alias JOIN other_tbl ... #627
Description
Motivation
A MariaDB/MySQL query like:
DELETE `activity` FROM `activity`
LEFT JOIN `subscription`
ON `subscription`.`uid` = `activity`.`subscription`
WHERE
...;Proposed Solutions
DeleteStatement supports only from_table (https://docs.rs/sea-query/latest/sea_query/query/struct.DeleteStatement.html#method.from_table) but there is no support for stating from which table rows should be deleted when there are multiple tables involved in the query.
I propose to add DeleteStatement::table(table_ref) (or similarly named) to build the above query.
I also propose to add join support to DeleteStatement.
Additional Information
Note that DELETE FROM tbl LEFT JOIN other_tbl is a syntax error, as with joins "delete from which table" must is part of the syntax; i.e. DELETE tbl FROM tbl LEFT JOIN other_tbl.
This feature request for DELETE ... FROM ... JOIN ... is related to #608 - a feature request for UPDATE TABLE ... JOIN ... SET ....