sql从两个表中删除id

时间:2014-09-09 07:28:40

标签: mysql sql sql-delete

使用phpmyadmin的MySQL版本5.5.37

我在从2个表中删除ID时遇到问题。

这些表是jos_users和jos_vm_user_info

我需要使用jos_users中的“之前注册”日期和“上次访问”日期从两个表中删除ID

如果我跑这个 -

DELETE jos_users,jos_vm_user_info from jos_users,jos_vm_user_info WHERE jos_users. `registerDate` < '2012-12-31 23:59:59' AND `lastvisitDate` < '2012-12-31 23:59:59'

我删除'0行'。我希望删除超过2000行

我显然在那里遇到了一些问题,但我对我正在做的事情还不够

还是有更好的方法吗?

BTW使用表和条件语句的SELECT工作正常

SELECT * FROM `jos_users` WHERE  `registerDate` < '2012-12-31 23:59:59' AND `lastvisitDate` < '2012-12-31 23:59:59' 

这是在jos_vm_user_info表中删除了id的问题。

3 个答案:

答案 0 :(得分:0)

您的DELETE语法不正确..

删除语法示例:

DELETE FROM tbl_name WHERE 1>0;

您的删除语法包含部分DELETE some_column FROM ....

突出显示部分是错误的..

答案 1 :(得分:0)

http://dev.mysql.com/doc/refman/5.6/en/delete.html

在该页面上查找多表删除

  

您可以在DELETE语句中指定多个表,以根据WHERE子句中的条件从一个或多个表中删除行。

DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;

答案 2 :(得分:0)

感谢大家的回答,非常感谢。这一切都有助于我更好地理解SQL。 我意识到,实现我想要的结果的最佳方法是移除假的用户,删除所有不在订单表中的id。 我在这里找到了答案Delete sql rows where IDs do not have a match from another table 我从总共10000个中移除了6000个ID!