在MySQL中使用单个查询从MultiPle表中删除

时间:2012-08-06 09:30:39

标签: mysql

我知道这是一个非常愚蠢的问题,它可能遍布互联网,但如果你们都不介意我想让别人在我的查询中指出问题。我使用单个查询从多个表中删除,我在两个表中没有任何外键..

这是两个表

的表结构

表1:dt_my_domain

|----------|----------------|
| username | domain_email   |
|----------|----------------|

表2:dt_my_contact

|----------|-------|----------------|------------------|--------|
| user     | email | contact_person | contact_email    |  type  |
|----------|-------|----------------|------------------|--------|

现在,表dt_my_domain将用户名作为主键, 和domain_email是唯一的。

同样在表dt_my_contact中,电子邮件是唯一的。

我想从两个表中删除,基于domain_email和电子邮件,这样当两个匹配时,来自两个表的corressponding元组被删除

这是我正在运行的查询,

DELETE FROM dt_my_domain, dt_my_contact
   USING dt_my_domain
INNER JOIN dt_my_contact USING(email) 
WHERE dt_my_domain.domain_email = 'saswat.saz.routroy@gmail.com'

所以,它给出了数据库错误

Unknown column 'email' in 'from clause'

现在我如何通过查询解决这个问题,我想调试或查询此问题

1 个答案:

答案 0 :(得分:1)

DELETE d,c FROM dt_my_domain d inner join dt_my_contact c
   on d.domain_email = c.email
WHERE d.domain_email = 'saswat.saz.routroy@gmail.com'