在 MySQL 中使用多个 JOIN 进行删除?
DELETE with multiple JOIN in MySQL?
我有一个包含多个 JOIN 的 SELECT 查询,它工作得很好,但现在我想删除这些行,但我找不到如何做。
此代码 returns 我出错 SQL (1064):
DELETE FROM rapport
INNER JOIN course ON rapport.course_id = course.id
INNER JOIN reunion ON course.reunion_id = reunion.id
INNER JOIN paris ON rapport.paris_id = paris.id
WHERE reunion.id = 231431
AND paris.bookmaker_id = 3
我需要一些帮助,谢谢
基本上,您需要指定 table 要删除的内容。假设这是 rapport
:
DELETE r
FROM rapport r JOIN
course c
ON r.course_id = c.id JOIN
reunion ru
ON c.reunion_id = ru.id JOIN
paris p
ON r.paris_id = p.id
WHERE ru.id = 231431 AND p.bookmaker_id = 3;
MySQL 还支持从多个 table 中删除。但是,级联约束通常是更好的方法。
你的语法错误。
也将其与别名一起使用:
DELETE r
FROM rapport r
INNER JOIN course c ON r.course_id = c.id
INNER JOIN reunion u ON c.reunion_id = u.id
INNER JOIN paris p ON r.paris_id = p.id
WHERE u.id = 231431 AND p.bookmaker_id = 3
如果要从所有表中删除,则必须在 DELETE
:
之后指定它们的别名
DELETE r, c, u, p
FROM rapport r
INNER JOIN course c ON r.course_id = c.id
INNER JOIN reunion u ON c.reunion_id = u.id
INNER JOIN paris p ON r.paris_id = p.id
WHERE u.id = 231431 AND p.bookmaker_id = 3
我有一个包含多个 JOIN 的 SELECT 查询,它工作得很好,但现在我想删除这些行,但我找不到如何做。 此代码 returns 我出错 SQL (1064):
DELETE FROM rapport
INNER JOIN course ON rapport.course_id = course.id
INNER JOIN reunion ON course.reunion_id = reunion.id
INNER JOIN paris ON rapport.paris_id = paris.id
WHERE reunion.id = 231431
AND paris.bookmaker_id = 3
我需要一些帮助,谢谢
基本上,您需要指定 table 要删除的内容。假设这是 rapport
:
DELETE r
FROM rapport r JOIN
course c
ON r.course_id = c.id JOIN
reunion ru
ON c.reunion_id = ru.id JOIN
paris p
ON r.paris_id = p.id
WHERE ru.id = 231431 AND p.bookmaker_id = 3;
MySQL 还支持从多个 table 中删除。但是,级联约束通常是更好的方法。
你的语法错误。
也将其与别名一起使用:
DELETE r
FROM rapport r
INNER JOIN course c ON r.course_id = c.id
INNER JOIN reunion u ON c.reunion_id = u.id
INNER JOIN paris p ON r.paris_id = p.id
WHERE u.id = 231431 AND p.bookmaker_id = 3
如果要从所有表中删除,则必须在 DELETE
:
DELETE r, c, u, p
FROM rapport r
INNER JOIN course c ON r.course_id = c.id
INNER JOIN reunion u ON c.reunion_id = u.id
INNER JOIN paris p ON r.paris_id = p.id
WHERE u.id = 231431 AND p.bookmaker_id = 3