2017-10-19 48 views
0

我有两个表: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 | ... 

我想创建一个新表属于每个的所有数据存在于表2中的ID_number。

查询我可以列出所有。

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

我需要编辑您的问题,并将第三列添加到包含各种类型的信息值的第二个表。没有这样的事情,我怕你的问题没有道理。

我们可以按ID进行汇总,并将地址和电话号码转换为单个连接字符串。

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;