There are many scenarios where it is required to delete data either directly from a table or using another table.
➠ Sample Table and Data
Table 1
CREATE ROWSTORE TEMPORARY TABLE deletetable(
id INTEGER,
name VARCHAR(100),
SHARD KEY(id)
);
Table 2
CREATE ROWSTORE TEMPORARY TABLE othertable(
id INTEGER,
name VARCHAR(100),
SHARD KEY(id)
);
Table 1:
INSERT INTO deletetable VALUES(1,'SingleStore');
INSERT INTO deletetable VALUES(2,'Database');
INSERT INTO deletetable VALUES(3,'Oracle');
INSERT INTO deletetable VALUES(4,'Vertica');
Table 2:
INSERT INTO othertable VALUES(1,'SingleStore');
INSERT INTO othertable VALUES(2,'Database');
INSERT INTO othertable VALUES(5,'DB2');
INSERT INTO othertable VALUES(6,'MYSQL');
DELETE FROM deletetable
WHERE id=4;
Output:
Query OK, 1 row affected
DELETE FROM deletetable
WHERE EXISTS (SELECT 1 FROM othertable WHERE deletetable.id = othertable.id);
Output:
Query OK, 2 rows affected
DELETE FROM deletetable
WHERE id in (SELECT id FROM othertable);
Output:
Query OK, 2 rows affected
ERROR 1149 (42000): Target of Multi-Table Delete ambiguous