如何在sql中连接多个值

时间:2016-10-08 19:26:03

标签: mysql sql

大家好,我有一个关于多个值串联的问题,这些值会进入单列,用逗号分隔,如下所示。

例如,有一个报告正在获取数据,但是对于一列,有5个值,因此对于所有列重复相同行的5次,因此我想连接该特定列的所有5个值。 / p>

请让我知道我该怎么做。 下面是获取5个值的查询,我希望这些值只能用逗号分隔一行。

sendResponse

1 个答案:

答案 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'
);