来自具有不同行的多个表的SELECT语句

时间:2017-09-21 14:35:24

标签: sql-server sql-server-2012 inner-join

我正在尝试执行一个select语句,该语句将基于sub_id(primary)从table1中获取数据,但是也会根据相同的sub_id从另一个表中获取用户的电话号码。但是我希望所有这些都在同一个(单个)记录中。

因此,例如,表1中的用户记录包含所有用户的信息,如姓名,地址等。但是,他们的家庭sub_id下的电话号码表中可能有3条相应的记录。 number(用于语音的comm_type v),移动电话(用于文本的comm_type t)以及最后用于配偶的移动电话(用于文本的comm_type t)。我想运行一个选择查询,它将获得以下内容:

SELECT name, address,
    (select phonenumber as mobile1 from phonenumbers table where table1.sub_id = phone numbers.sub_id and comm_type = 't'),
    (select phonenumber as mobile2 from phonenumbers table where table1.sub_id = phone numbers.sub_id and comm_type = 't'),
    (select phonenumber as mobile3 from phonenumbers table where table1.sub_id = phone numbers.sub_id and comm_type = 't'),
    (select phonenumber as voice1 from phonenumbers table where table1.sub_id = phone numbers.sub_id and comm_type = 'v'),
    (select phonenumber as voice2 from phonenumbers table where table1.sub_id = phone numbers.sub_id and comm_type = 'v'),
FROM table1

但是我想确保它处于某种循环中,所以它不会一遍又一遍地抓住第一个手机号码。我希望结果是如下所示的一条记录:

name | address | mobile1 | mobile2 | mobile3 | voice1 | voice2 | voice3

0 个答案:

没有答案
相关问题