2017-05-19 19 views
3

同じIDの複数の行を持つテーブルがあります関連するフィールド番号と値を別の列に入れることができるSQLクエリを計算したい例えば;値1.3の場合は、最初に呼び出される新しい列が作成され、1.6が姓などとなります。私はすべての情報を1つの行に入れて、lead_idの値が79の場合はそれぞれ9行ではなく1行だけとなるようにしたいと考えています。これがすべて可能なのかどうか分かりません。私は以下のデータベース構造のプレビューを、私が意味することを示すために入れました。MySQL同じIDの複数の行を1つの行にマージする

ID lead_id field_number Value 

1  79   1.3  John 
2  79   1.6  Doe 
3  79   2   [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))AS 'Email'を使用していただきありがとうございます。 –

関連する問題