2017-10-19 4 views
0

をリストするクエリ私が持つ2つのテーブルがあります。SQLiteの:

表1を:

ID_Number | Description| 
a   | abc 
b   | cde 
c   | fgh 

表2:

ID | Title   | value 
a | phone number | 555-1234 
a | address  | somewhere USA 
a | mobile_number | 867-5309 
b | phone number | ... 
b | address  | ... 
b | mobile_number | ... 

私はそれぞれに属するすべてのデータを新しいテーブルを作成したいですID_numberは表2にあります。

クエリですべてをリストできます。

select Table1.ID_Number, Table2.ID from Table1, Table2 
where Table1_ID_number = Table2.ID)) 
order by ID_Number 

しかし、私が使用して新しいテーブルを作成したいと思います:

Table3 
    |ID | Description| ID_data 
    a , abc, "Address_A_PhoneNumber_A_Mobile_Number_A" 
    b , cde, "Address_B_PhoneNumber_B_Mobile_Number_B" 

は、SQLでこれは可能です?

答えて

1

質問を編集し、さまざまな種類の情報の値を含む第3の列を2番目の表に追加する必要がありました。このようなことがなければ、私はあなたの質問が理にかなっていないのではないかと心配しています。

IDで集計し、アドレスと電話番号を1つの連結文字列にピボットアウトすることができます。

SELECT 
    t1.ID_Number, 
    t1.Description 
    MAX(CASE WHEN t2.title = 'address'  THEN t2.value END) || '_' || 
    MAX(CASE WHEN t2.title = 'phone number' THEN t2.value END) || '_' || 
    MAX(CASE WHEN t2.title = 'mobile_number' THEN t2.value END) AS ID_data 
FROM Table1 t1 
INNER JOIN Table2 t2 
    ON t1.ID_Number = t2.ID 
GROUP BY 
    t1.ID_Number, 
    t1.Description;