[英]How to delete rows from two tables using INNER JOIN in mysql?
我想刪除chart_id為1的兩個表中的所有行,但是它將行不通,而且我不知道為什么。
DELETE `cms_module_charts`
FROM `cms_module_charts`
INNER JOIN `cms_module_charts_kategorie`
ON `cms_module_charts_kategorie`.`chart_id`=`cms_module_charts`.`chart_id`
WHERE `chart_id`= 1
這是錯誤:意外字符。 (在位置7的“ cms_module_charts
附近”)
從MySQL文檔看來,您可以輕松做到這一點:
DELETE t1, t2
FROM t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;
要么
DELETE
FROM t1, t2
USING t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;
看起來更新,可取的JOIN
標准也是可以接受的,我也不知道為什么您的查詢會抱怨。 您確定查詢中沒有任何奇怪的字符嗎?
標准的SQL語法是DELETE FROM
, DELETE
和FROM
之間只有空格
嘗試這個:
DELETE FROM (`cms_module_charts` INNER JOIN `cms_module_charts_kategorie`
ON `cms_module_charts_kategorie`.`chart_id`=`cms_module_charts`.`chart_id`)
WHERE `chart_id`= 1
我認為在您的數據庫方案中,您應該使用ON DELETE CASCADE
,然后在刪除行時,它會刪除其引用,但是當您使用聯接刪除時,這沒有任何意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.