【问题标题】:SQLite: Query to listSQLite:查询到列表
【发布时间】:2017-10-19 07:45:31
【问题描述】:

我有两张桌子:

表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 吗???

【问题讨论】:

    标签: sql sqlite


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 2013-09-25
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多