mysql - SQL 将多个值放入一列中,以逗号分隔

标签 mysql sql

需要有关此 SQL 查询的一些帮助。节点是一个产品表,每个产品在表 field_data_field_images 上有 n 个图像。我需要将所有这些图像文件名选择到以逗号分隔的一列中(例如“image1.jpg、image2.jpg”等)。因此,首先我需要从 field_data_field_images 获取所有图像 ID,然后从 file_management 获取文件名本身。

SELECT node.*,
file_managed.filename,
field_data_field_product_code.field_product_code_value,
FROM node

LEFT JOIN field_data_field_images ON node.nid = field_data_field_images.entity_id
LEFT JOIN file_managed ON field_data_field_images.field_images_fid = file_managed.fid

WHERE node.language = 'lt' AND node.type = 'products'
GROUP BY nid

最佳答案

您可以使用group_concat()。以下查询还引入了表别名,因此查询更易于编写和阅读:

SELECT n.*,
       GROUP_CONCAT(fm.filename) as filenames
FROM node n LEFT JOIN
     field_data_field_images dfi
     ON n.nid = dfi.entity_id LEFT JOIN
     file_managed fm
     ON dfi.field_images_fid = fm.fid
WHERE n.language = 'lt' AND n.type = 'products'
GROUP BY n.nid

关于mysql - SQL 将多个值放入一列中,以逗号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50408622/

相关文章:

php - 如何在mysql登录过程中使用 bool 值

mysql - 比较 2 个相同的 MySQL 表

mysql - 关系数据库中记录的分布式处理

php - 从 CSV 文件在 Joomla 2.5 中添加用户并通知他们注册电子邮件

sql - 简化 SQL Server 查询

java - 为什么 Spring boot JPA native 更新会为 postgres 数据库提供 PSQLException?

Mysql查询帮助。我需要确保至少返回一条记录

sql - 如何在此表中找到重复的连续值?

mysql - 如何使用 node.js 上的 mysql2 包使用准备好的查询

sql - 我需要一些帮助来编写一个 sql 查询,我想找到所有讲授类(class)的讲师