2017-05-19 95 views
3

我有一个具有多个相同ID的行的表我想弄清楚一个SQL查询,它允许我将相关的字段号和值放入单独的列中例如;对于值1.3,将创建一个新的列,第一个将被创建,1.6将是姓,依此类推。我想试图将所有信息都放入一行,因此对于lead_id值为79的每一行,只有一行而不是9行。我不确定这是否可能?我已经在下面预览了数据库结构,试图展示我的意思。MySQL将具有相同ID的多个行合并到一行中

ID lead_id field_number Value 

1  79   1.3  John 
2  79   1.6  Doe 
3  79   2   j[email protected] 
4  79   6   POSTCODE 
5  79   3   01332 1234567 
6  79   4   DATE OF BIRTH 
7  79   7   APPLICATION ID 
8  79   9   CITY NAME 
9  79   5   RESUME URL 
10  80   1.3  Jane 
11  80   1.6  Doe 
12  80   2   [email protected] 
13  80   6   POSTCODE 
14  80   3   01332 1234567 
15  80   4   DATE OF BIRTH 
16  80   7   APPLICATION ID 
17  80   9   CITY NAME 
18  80   5   RESUME URL 

任何帮助将不胜感激!

回答

2

您可以使用多个SELECT查询此,例如:

SELECT t.lead_id, 
(SELECT value FROM table WHERE lead_id = t.lead_id AND field_number = 1.3) as 'first name', 
(SELECT value FROM table WHERE lead_id = t.lead_id AND field_number = 1.6) as 'last name', 
(SELECT value FROM table WHERE lead_id = t.lead_id AND field_number = 2) as 'email', 
(SELECT value FROM table WHERE lead_id = t.lead_id AND field_number = 6) as 'post code', 
(SELECT value FROM table WHERE lead_id = t.lead_id AND field_number = 3) as 'phone', 
(SELECT value FROM table WHERE lead_id = t.lead_id AND field_number = 4) as 'dob' 
FROM table t 

您可以添加更多的列多SELECT秒。

+0

谢谢我结束了使用GROUP_CONCAT(IF('field_number' = 2,VALUE,NULL))作为'电子邮件',感谢您的帮助,虽然 –

相关问题