📅  最后修改于: 2023-12-03 14:49:21.654000             🧑  作者: Mango
在 SQL 中,连接是通过在两个表之间共享一列数据来实现的。内部连接(inner join)是一种通过匹配两个表中的共同数据行来创建连接的方法。如果想要删除在内部连接中的数据,可以通过以下方法实现。
可以使用子查询来查找内部连接中的数据,并将其从原始表(parent table)中删除。
DELETE FROM parent_table
WHERE parent_table.id IN (
SELECT inner_table.id
FROM parent_table
INNER JOIN inner_table
ON parent_table.id = inner_table.id
)
这个查询首先在内部连接中查找所有 ID,然后根据这些 ID 从原始表中删除对应的行。
另一种方法是将内部连接的结果存储在一个临时表中,并在原始表中使用它来删除行。
CREATE TEMPORARY TABLE temp_table AS (
SELECT *
FROM parent_table
INNER JOIN inner_table
ON parent_table.id = inner_table.id
);
DELETE FROM parent_table
WHERE id IN (
SELECT id
FROM temp_table
);
这个查询首先使用内部连接创建一个临时表,然后从原始表中删除与临时表中的结果匹配的行。
无论是使用子查询还是临时表,都可以从内部连接中删除数据。但是,使用临时表可以提高代码的可读性和效率。要根据具体情况选择合适的方法,以确保数据库的性能和稳定性。