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