[英]Why won't this DELETE query work?
我不知道为什么这个查询不起作用。 我做了一个SELECT来验证它是否在提取我想要的行。 我输入了DELETE,但现在不起作用。
这是我的SELECT查询:
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
我还尝试了使用不起作用的JOIN进行此查询:
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行的'as dh JOIN dragon_list as dl ON dh.dragon_list_id = dl.dragon_list_id WH'附近使用
我只想清除dragon_to_habitat表中的值。 dragon_list表应保持不变。
为了达到良好的效果,这是我的架构: http : //sqlfiddle.com/#!2/7ac6a1
您需要JOIN
dragon_to_habitat
和dragon_list
表-
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
尝试使用JOIN
:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.