Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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 将表上的多行联接到联接表的数组中_Mysql_Sql_Node.js_Database_Express - Fatal编程技术网

Mysql 将表上的多行联接到联接表的数组中

Mysql 将表上的多行联接到联接表的数组中,mysql,sql,node.js,database,express,Mysql,Sql,Node.js,Database,Express,我有一个名为idcards的表,该表的id上有一个外键reservations。然后我有一个表photos,表idcards中的id上有一个外键 我想从保留id为特定值的id卡中选择所有内容,以及附加到此id卡的照片 这是我到目前为止所拥有的,但它显然只会为每张ID卡选择一张照片: SELECT i.*, p.photo FROM idcards AS i INNER JOIN photos AS p ON (i.id=p.iId) WHERE i.resId = 1 如何使我

我有一个名为
idcards
的表,该表的id上有一个外键
reservations
。然后我有一个表
photos
,表
idcards
中的id上有一个外键

我想从保留id为特定值的id卡中选择所有内容,以及附加到此id卡的照片

这是我到目前为止所拥有的,但它显然只会为每张ID卡选择一张照片:

SELECT i.*, p.photo 
FROM idcards AS i 
INNER JOIN photos AS p 
    ON (i.id=p.iId) 
WHERE i.resId = 1

如何使我得到的ID卡具有一个包含所有照片的数组?

如果您只需要表
照片
中的字段
,您可以将它们分组在一个数组中,将其与ID卡关联,并使用如下查询:

从idcards中选择i.*JSON_ARRAYAGG(p.photo),当我离开时,将照片作为p-ON(i.id=p.iId)连接,其中i.resId=1按i.id分组

或按以下步骤返回同一字段中的照片,并用逗号分隔:


选择i.*,当我离开时,从idcards中选择GROUP_CONCAT(p.photo)作为p ON(i.id=p.iId)加入照片,其中i.resId=1个按i.id分组

数组与您的问题有什么关系?MySQL不支持数组。“显然,每张ID卡只选择一张照片:”-我不太清楚,我会说每张照片只选择一行。请将示例数据和预期结果作为文本添加到问题中。@P.Salmon您是对的,谢谢:)我怀疑您正在寻找组_concat