MySQL和PHP—高效地获取与每行关联的行和数组
我有两张桌子: 表1: 表2: 如何有效地返回与用户关联的行,以便获取信息和该ID的关联数组\ u信息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可以平滑左连接的输入?如
例如,像“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