使用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的问题。
答案 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!