终于在一个外国网站搜索到了解决办法
很简单:
$db->query("DELETE FROM {$tablepre}squestionbodys T LEFT JOIN {$tablepre}squestions F USING(id) where F.typeid='$typeid'");
改成
$db->query("DELETE
T.* FROM {$tablepre}squestionbodys T LEFT JOIN {$tablepre}squestions F USING(id) where F.typeid='$typeid'");
增加一个T.*就搞定啦。。不容易啊
感谢楼上的哥们回复,呵呵
最后总结:因为insert、update、和delete三个参数,都只能针对一个表操作
这次的delete因为使用了left join,因此让程序造成是delete是对两个表进行操作,因此出现了这个问题。
实例:
DELETE qa.* FROM qa_answer AS qa ,( SELECT MIN(id) AS m_id,question_id FROM qa_answer a WHERE a.sys_status=3 AND a.status = 1 GROUP BY a.question_id HAVING COUNT(1)>1 ) AS d WHERE qa.sys_status = 3 AND qa.question_id = d.question_id AND qa.id<>d.m_id ;