Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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 数据不在表中的相关子查询_Php_Mysql_Correlated Subquery - Fatal编程技术网

Php 数据不在表中的相关子查询

Php 数据不在表中的相关子查询,php,mysql,correlated-subquery,Php,Mysql,Correlated Subquery,我使用的是MySql,有一种情况非常类似于相关子查询,只是内部查询中的数据不在数据库中,而是在PHP会话中 如果所有数据都在数据库中,查询将如下所示: SELECT * FROM tableA WHERE (tableA.valueA && ( SELECT valueB FROM tableB WHERE tableB.id = tableA.id)); 我的问题是我没有桌子。相反,我有一个PHP数组。如何将数组注入查询?我应该尝试在某个地方创建一个临时表吗?或者我应该尝试将

我使用的是MySql,有一种情况非常类似于相关子查询,只是内部查询中的数据不在数据库中,而是在PHP会话中

如果所有数据都在数据库中,查询将如下所示:

SELECT * FROM tableA WHERE (tableA.valueA && (
SELECT valueB FROM tableB WHERE tableB.id = tableA.id));
我的问题是我没有桌子。相反,我有一个PHP数组。如何将数组注入查询?我应该尝试在某个地方创建一个临时表吗?或者我应该尝试将数组声明为变量


PHP数组中的信息特定于每个用户,并且变化很快。此外,将有大量查询,因此性能是一个考虑因素。

请参阅上面Wrikken的评论-我将此作为一个临时表,这似乎是一个很好的解决方案。

MySQL没有数组概念,甚至
FIND_IN_SET
也可以使用位置标记,而不是像
tableB.id
这样的“命名”条目。临时桌子似乎确实是一个很好的解决办法。尽管如此,如果实际数组没有那么大,您可能只想获取所有那些
其中tableB.id=tableA.id
,并在PHP本身中进行
valueA&&valueB
过滤。如果您想要一个临时表,只需将其设置为一个
JOIN
,而不是一个子查询。谢谢Wrikken。你为什么不把这个贴出来作为答案呢?我很高兴接受它。