在一行中合并MySQL数据库表的每两行

时间:2016-05-31 14:16:05

标签: mysql database merge talend

我有一个数据库表,其中包含人的指纹(此处template列),每个人可以引入2个手指,因此同一个人必须有2个记录。 这是表格:

enter image description here

ID为'275'的人有2条记录,每条记录用于单个手指。 现在我使用Talend创建一个表,这样我就可以将每两个指纹合并为一个表,我的意思是第37行和第38行将是单行,template列将连接成只有一个{{ 1}}

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

INSERT INTO newtable (ids, person_id_integer) 
SELECT CONCAT(finger1.id, "|", finger2.id), finger1.person_id_integer
FROM oldtable finger1, oldtable finger2
where finger1.person_id_integer = finger2.person_id_integer
and finger1.id <> finger2.id

当然,关注您希望如何存储新数据

:)

答案 1 :(得分:0)

我找到了一个解决方案: enter image description here

我添加了相同的表两次作为输入和输出,如此照片所示,并首先使用此查询获取它:

select FP_ID, FP_DEVICE, group_concat(FP_FINGER_PRINT SEPARATOR ''),FP_EMPLOYEE_ID
from t_finger_print GROUP BY FP_EMPLOYEE_ID;