Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将SELECT转换为DELETE mysql php_Php_Mysql - Fatal编程技术网

将SELECT转换为DELETE mysql php

将SELECT转换为DELETE mysql php,php,mysql,Php,Mysql,我花了很长时间将这个SELECT语句转换成DELETE语句 $query = " SELECT n.thread_id , n.status , n.status_tooltip_text FROM newmessages n , oldmessages o WHERE n.thread_id = o.thread_id AND n.status_tooltip_text = o.status_tooltip_text "; 我试图实现的最终结果

我花了很长时间将这个SELECT语句转换成DELETE语句

$query  = "
SELECT n.thread_id
     , n.status
     , n.status_tooltip_text 
  FROM newmessages n
     , oldmessages o
 WHERE n.thread_id = o.thread_id 
   AND n.status_tooltip_text = o.status_tooltip_text
";
我试图实现的最终结果是从新消息中删除状态工具提示文本与旧消息中的状态工具提示相同的消息


上面的select有效,但当我将select转换为delete时,它表示数据库查询失败。两个表中的列具有相同的列定义。

将SELECT替换为DELETE将不起作用。DELETE语句没有该列

$query  = "DELETE n FROM 
newmessages n, oldmessages o ";
$query .= "WHERE n.thread_id=o.thread_id ";
$query .= "AND n.status_tooltip_text=o.status_tooltip_text";

我希望这有帮助

这就是我如何让它工作的:

$query  = "DELETE FROM newmessages where thread_id in ";
                $query .= "(SELECT thread_id FROM oldmessages ";
                $query .= "WHERE oldmessages.thread_id=newmessages.thread_id ";
                $query .= "AND oldmessages.status_tooltip_text=newmessages.status_tooltip_text ";
                $query .= "AND oldmessages.status=newmessages.status)";

我正在努力找出以下问题的症结所在:

DELETE n 
  FROM newmessages n
  JOIN oldmessages o
    ON n.thread_id = o.thread_id
   AND n.status_tooltip_text = o.status_tooltip_text

我想你需要像从newmessages中删除这样的东西,其中线程id在Select n中。线程id从newmessages n中,olmassages…你的其余查询显示你的DELETE语句?或者你可以尝试从…中删除n。。。。。然后,您的其余查询仍然会收到一个数据库查询失败错误。如果mysql没有找到任何要删除的行,这会给我一个错误吗?这是我的delete语句:$query=delete FROM newmessages where thread\u id IN$query.=从newmessages n、oldmessages o中选择n.thread\u id$query.=其中n.thread\u id=o.thread\u id$query.=和n.status\u tooltip\u text=o.status\u tooltip\u text$query.=和n.status=o.status;这是一个丑陋的问题。