大家好,我有一个关于多个值串联的问题,这些值会进入单列,用逗号分隔,如下所示。
例如,有一个报告正在获取数据,但是对于一列,有5个值,因此对于所有列重复相同行的5次,因此我想连接该特定列的所有5个值。 / p>
请让我知道我该怎么做。 下面是获取5个值的查询,我希望这些值只能用逗号分隔一行。
sendResponse
答案 0 :(得分:0)
MySQL的字符串聚合函数是medium: "instore,online"
。
您使用的是1980年代使用的连接语法。为什么?你在哪里和什么时候学到了什么?请使用正确的ANSI连接:
GROUP_CONCAT
当您选择SELECT GROUP_CONCAT(DISTINCT pac.packaged_item_gid) AS packaged_item_gids
FROM shipment sh
JOIN order_movement om ON om.shipment_gid = sh.shipment_gid
JOIN order_movement_d omd ON omd.order_movement_gid = om.order_movement_gid
JOIN s_ship_unit ssu ON ssu.s_ship_unit_gid = omd.s_ship_unit_gid
JOIN s_ship_unit_line sul ON sul.s_ship_unit_gid = ssu.s_ship_unit_gid
JOIN packaged_item pac ON pac.packaged_item_gid = sul.packaged_item_gid
WHERE sh.shipment_gid = 'ula/sao.5000070143';
时,packaged_item_gid
只有s_ship_unit_line
,您可以单独从此表中进行选择,并在IN
子句中查找匹配的货件。
SELECT GROUP_CONCAT(packaged_item_gid) as packaged_item_gids
FROM s_ship_unit_line
WHERE s_ship_unit_gid in
(
select ssu.s_ship_unit_gid
FROM shipment sh
JOIN order_movement om ON om.shipment_gid = sh.shipment_gid
JOIN order_movement_d omd ON omd.order_movement_gid = om.order_movement_gid
JOIN s_ship_unit ssu ON ssu.s_ship_unit_gid = omd.s_ship_unit_gid
WHERE sh.shipment_gid = 'ula/sao.5000070143'
);