Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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
Php 依赖嵌套select和delete MySQL语句中的多个表_Php_Mysql_Sql_Pdo - Fatal编程技术网

Php 依赖嵌套select和delete MySQL语句中的多个表

Php 依赖嵌套select和delete MySQL语句中的多个表,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我试图编写一个双MySQL查询,将一个表的内容归档到另一个表中,然后删除原始表中的原始行 我的基本查询在其他领域工作得很好。下面的查询依赖于第二个表来帮助选择需要归档和删除的行 我得到一个语法错误,其中AS出现在第一个查询的嵌套select中,而在delete查询中靠近AS 我已经研究并尝试了一系列不同的代码组合,但我无法让查询正常工作。查询是使用PDO用PHP编写的,因此请忽略PDO标记,它们不是问题所在 INSERT INTO usetwca (r_id, c_id, o_id, t_id,

我试图编写一个双MySQL查询,将一个表的内容归档到另一个表中,然后删除原始表中的原始行

我的基本查询在其他领域工作得很好。下面的查询依赖于第二个表来帮助选择需要归档和删除的行

我得到一个语法错误,其中AS出现在第一个查询的嵌套select中,而在delete查询中靠近AS

我已经研究并尝试了一系列不同的代码组合,但我无法让查询正常工作。查询是使用PDO用PHP编写的,因此请忽略PDO标记,它们不是问题所在

INSERT INTO usetwca (r_id, c_id, o_id, t_id, s_id, ip_address, timestamp, timestamp_archived) SELECT :r_id, usetwc.c_id, usetwc.o_id, usetwc.t_id, usetwc.s_id, usetwc.ip_address, usetwc.timestamp, :timestamp FROM usetwc JOIN useo ON useo.o_id = usetwc.o_id AND useo.best_fit IS NULL WHERE usetwc.user_id = :user_id;

DELETE FROM usetwc JOIN useo ON useo.o_id = usetwc.o_id AND useo.best_fit IS NULL WHERE usetwc.user_id = :user_id;

您应该在“用户会话练习”表上的“删除”前将其作为
触发器来实现

请看一看,这是一个很好的例子


这里有一个很好的关于使用的一般参考。

我能够让我的查询正常工作

INSERT INTO usetwca (r_id, c_id, o_id, t_id, s_id, ip_address, timestamp, timestamp_archived) SELECT :r_id, usetwc.c_id, usetwc.o_id, usetwc.t_id, usetwc.s_id, usetwc.ip_address, usetwc.timestamp, :timestamp FROM usetwc JOIN useo ON useo.o_id = usetwc.o_id AND useo.best_fit IS NULL WHERE usetwc.user_id = :user_id;

DELETE usetwc FROM usetwc INNER JOIN useo ON useo.o_id = usetwc.o_id AND useo.best_fit IS NULL WHERE usetwc.user_id = :user_id

你为什么没有在“users\u sessions\u Execution\u t\u ws\u correlation”表中的删除前将其作为
触发器来实现呢?@Declan\u K你能详细说明一下吗?嗯,非常有趣,我在这个新项目中有大约50个存档/删除查询。我将进一步探讨MySQL触发器的概念。如果我决定不使用触发器,您知道如何修复上述查询吗?