Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/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
MySQL和PHP—高效地获取与每行关联的行和数组_Php_Mysql_Sql_Query Optimization - Fatal编程技术网

MySQL和PHP—高效地获取与每行关联的行和数组

MySQL和PHP—高效地获取与每行关联的行和数组,php,mysql,sql,query-optimization,Php,Mysql,Sql,Query Optimization,我有两张桌子: 表1: 表2: 如何有效地返回与用户关联的行,以便获取信息和该ID的关联数组\ u信息 例如,像“select ID,info from table1 where user=1”这样的查询也会从表2中返回[a,b],这样第一行的结果类似于[1,data1,[a,b]],第二行的结果类似于[2,data2,[a]]。类似地,“…where user=2”应该返回类似于[3,data3,[d,g,m]]的内容。我不认为MySQL返回的东西很像这样,但也许PHP可以平滑左连接的输入?如

我有两张桌子:

表1: 表2: 如何有效地返回与用户关联的行,以便获取信息和该ID的关联数组\ u信息


例如,像“select ID,info from table1 where user=1”这样的查询也会从表2中返回[a,b],这样第一行的结果类似于[1,data1,[a,b]],第二行的结果类似于[2,data2,[a]]。类似地,“…where user=2”应该返回类似于[3,data3,[d,g,m]]的内容。我不认为MySQL返回的东西很像这样,但也许PHP可以平滑左连接的输入?如果MySQL为每个数组返回一个单独的行,那么复制info中的所有数据似乎是浪费时间的,但我不确定还有其他方法。

您可以使用带有连接的组连接,然后在迭代结果时,使用explode()要将连接的字符串转换为数组。

请考虑以不同的方式重新设置问题。我只是读了三遍,还是弄不懂头绪。当你说
[1,data1,[a,b]]
时,你完全不可能理解你想要什么,并且提供了一个永远无法选择的查询。我的意思是,对于调用“…where user=1”,我想返回两行,其中一个字段是ID,一个是data,一个是数组。在第一行,数组将是[a,b],在第二行,数组将是[a]。根据前面的注释@Anonymous1,同意group concat
ID | user | info
------------------
1    1      data1
2    1      data2
3    2      data3
table1_id | array_info
------------------------
1             a  
1             b
2             a
3             d
3             g
3             m