Mysql 为什么这个删除查询不起作用?

Mysql 为什么这个删除查询不起作用?,mysql,Mysql,我不明白为什么这个查询不起作用。我做了一个SELECT来验证它是否正在拉取我想要的行。我输入了DELETE,现在它不起作用了 以下是我的选择查询: SELECT dh.dragon_list_id, dh.habitat_list_id FROM dragon_to_habitat dh, dragon_list dl WHERE dh.dragon_list_id = dl.dragon_list_id AND dl.user_id = 1 AND dl.is_delet

我不明白为什么这个查询不起作用。我做了一个SELECT来验证它是否正在拉取我想要的行。我输入了DELETE,现在它不起作用了

以下是我的选择查询:

SELECT dh.dragon_list_id, dh.habitat_list_id 
FROM dragon_to_habitat dh, dragon_list dl
  WHERE dh.dragon_list_id = dl.dragon_list_id
    AND dl.user_id = 1
    AND dl.is_deleted = false
我肯定我忽略了一些愚蠢的事情。很少有人愿意帮忙

DELETE FROM dragon_to_habitat dh
  WHERE dh.dragon_list_id = dragon_list.dragon_list_id
    AND dragon_list.user_id = 1
    AND dragon_list.is_deleted = false
我还使用一个不起作用的联接尝试了此查询:

DELETE 
FROM dragon_to_habitat as dh JOIN 
     dragon_list as dl ON dh.dragon_list_id = dl.dragon_list_id
WHERE dl.user_id = 1 AND dl.is_deleted = false
错误:1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解第2行中使用near'as dh JOIN dragon_list as dl ON dh.dragon_list_id=dl.dragon_list_id WH'的正确语法

我只想清除dragon_to_Habitation表中的值。dragon_列表表应保持不变

为了更好地衡量,这里是我的模式:

您需要加入dragon\u to\u Habitat和dragon\u list表-

尝试使用联接:


不行吗?也可以提供select查询?您的错误消息是什么?另外,我看到您正在使用dragon_列表,但我没有看到任何连接什么是dragon_列表?另一个表?如果使用多个表,您不必使用联接吗?@Vector这不是打字错误,它为表名指定了别名。不起作用,尝试了联接。我在原始问题中添加了查询和错误。使用此选项-将dh从dragon_删除到作为dh内部连接dragon_列表作为dh上的dl。dragon_列表_id=dl.dragon_列表_id,其中dl.user_id=1和dl.is_deleted=0在您使用dragon_列表的条件下,还有一件事。is_deleted=false,但is_deleted的类型为tinyint,你需要改变这件事。不起作用,尝试加入。我在原始问题中添加了查询和错误。请在您的答案中添加一些解释。
DELETE FROM dragon_to_habitat AS dh
JOIN dragon_list AS dragon_list ON dh.dragon_list_id = dragon_list.dragon_list_id
WHERE dragon_list.user_id = 1 AND dragon_list.is_deleted = false
DELETE 
FROM dragon_to_habitat as dh JOIN 
     dragon_list as dl ON dh.dragon_list_id = dl.id
WHERE dl.user_id = 1 AND dl.is_deleted = false
DELETE FROM 
 dragon_to_habitat 
USING 
  dragon_to_habitat dh 
INNER JOIN 
  dragon_list dl 
ON 
  dh.dragon_list_id = dl.dragon_list_id 
AND 
  dl.user_id = 1 
AND 
  dl.is_deleted = false