如何在sql中使用连接来获得所需的结果

我有2个表orc_users和orc_files。 现在我想从orc_files表中获取相关用户的文件我已经尝试这个查询: –

use orc select * from orc_users as T1 INNER JOIN orc_files AS t2 on T1.id = t2.userid where T1.email='sdfsdf'; 

我得到了这个结果: 在这里输入图像描述

但我想要的logging像这样:

 user={name:"sad", phone:"asdasda", files:[{filename:"dfsdfs",size:12,fileid:"sdfs"}, {filename:"dfsdfs",size:12,fileid:"sdfs"}]} 

我用MySQL的node.js,所以它给我的结果数组。

请帮帮我。 提前致谢。

全部未经testing:在查询中使用group_concat()作为逗号分隔的string和group by,如下所示:

 select t1.id /* specify the fields here */ , GROUP_CONCAT(T2.Filename ORDER BY T2.Filename ASC SEPARATOR ', ') as filenames from orc_users as T1 INNER JOIN orc_files AS t2 on T1.id = t2.userid where T1.email='sdfsdf' group by t1.id /* specify the fields here too */ ; 

尝试使用CONCAT()来获取文件名和大小,例如

  , GROUP_CONCAT( CONCAT(T2.Filename,' size:',T2.size) ORDER BY T2.Filename ASC SEPARATOR ', ') as filenames 

如果在group_concat()内的concat()工作[我认为它]将继续添加项目,直到你得到所有的细节需要。

性能警告:不知道这样做会有多好,可能不是很好。

在单个查询中不可能得到这样的结果,但是可以在每个单独的行中获取files数据作为查询并将结果附加到当前行中。