簡體   English   中英

使用內部聯接刪除查詢

[英]Delete query with inner join

詢問

DELETE `contact`
FROM `contact` ct
INNER JOIN `contact_user` cu ON cu.contact_id=ct.id
WHERE ct.id=4 && ct.block_id=5671 && cu.user_id=1

錯誤

致命:SQLSTATE [42S02]:未找到基表或視圖:1109 MULTI DELETE中的未知表“聯系人”; SQL:從contact ct內聯接中刪除contact contact_user cu ON cu.contact_id = ct.id WHERE ct.id = 4 && ct.block_id = 5671 && cu.user_id = 1

由於您已經為表contact定義了Alias name ,因此您需要使用別名而不是原始表名。 嘗試這個

DELETE ct 
FROM   contact ct 
       INNER JOIN contact_user cu 
               ON cu.contact_id = ct.id 
WHERE  ct.id = 4 
       AND ct.block_id = 5671 
       AND cu.user_id = 1 

或刪除contact表的別名

DELETE contact 
FROM   contact 
       INNER JOIN contact_user cu 
               ON cu.contact_id = contact.id 
WHERE  contact.id = 4 
       AND contact.block_id = 5671 
       AND cu.user_id = 1 

因為您已經為表定義了別名,所以應該使用它。 同時更換&&and

DELETE `ct` --`contact`
FROM `contact` ct
INNER JOIN `contact_user` cu ON cu.contact_id=ct.id
WHERE ct.id=4 and ct.block_id=5671 and cu.user_id=1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM