Oracle SQL查询选择一对多,多行成一行结果

时间:2016-07-13 13:07:52

标签: sql oracle

我正在学习SQL并试图弄清楚如何以一对多关系编写两个表的查询。

Table1有人信息: (PersonId, FirstName, MiddleName, LastName)table2(PersonId, Phone, PhoneType)

到目前为止,这是我的查询

select Table1.PERSON_ID, 
Table1.FIRST_NAME, 
Table1.MIDDLE_NAME, 
Table1.LAST_NAME, 
Table2.PHONE_NUMBER
from Table1
inner join Table2
on Table2.PERSON_ID = Table1.PERSON_ID
where Table2.PHONE_TYPE in ('BUSINESS','PERSONAL','HOME')

这是表格

Table1
PERSON_ID     FIRST_NAME     MIDDLE_NAME     LAST_NAME
1             John           Carter          Jones

Table2
PERSON_ID     PHONE_NUMBER   PHONE_TYPE
1             111-111-1111   HOME
1             111-111-1112   PERSONAL
1             111-111-1113   BUSINESS

从我的查询中得到

1     John Carter Jones 111-111-1111
1     John Carter Jones 111-111-1112
1     John Carter Jones 111-111-1113

我想实现以下结果

1     John Carter Jones 111-111-1111 111-111-1112 111-111-1113

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

一种方法可能是以下方法,计算按ID划分的电话号码的连续:

// public function
this.run = function() {
    'use strict';
    let compile_lib = lib_array.map((item) => {
        return new Promise(() => {compileEntry(item);})
    });
    Promise.all(compile_lib).then(() => { console.log("ni"); });
}