在MySQL中删除多个JOIN?

问题描述 投票:0回答:1

我有一个具有多个JOIN的SELECT查询,它们可以很好地工作,但是现在我想删除此行,而我找不到方法。这段代码向我返回错误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

我需要一些帮助,谢谢

mysql sql join sql-delete
1个回答
0
投票

基本上,您需要指定要删除的表。假设这是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 rapport.paris_id = p.id 
    WHERE ru.id = 231431 AND p.bookmaker_id = 3;

MySQL还支持从多个表中删除。但是,级联约束通常是一种更好的方法。


0
投票

您的语法错误。还要将其与别名一起使用:

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
© www.soinside.com 2019 - 2024. All rights reserved.