【发布时间】:2017-07-10 23:54:00
【问题描述】:
我正在将数据从 MySQL 转换为 Postgres,并在 Postgres 数据库中电话号码作为单独的字段存储在客户表中,即 Tel_Home、Tel_Work、Tel_Fax , Cellular 但是在 MySQL 中电话号码存储在它自己的表 telnos 中。
我的问题是如何在单个选择语句中获取在表 telnos(可能为 Null - 4)中找到的所有电话号码作为最多 4 个单独的字段而不是作为4 个单独的记录/行
这是我尝试过的,但没有成功,因为每个客户最多可以存储 4 个可能的号码。
Select A.Name,A.surname,B1.number,B2.number
from Customer A
left join telnos B1 on A.telno=B1.id
left join telnos B2 on A.telno=B2.id and B2.number<>B1.number
我希望结果是这样的
Firstname, Surname ,Tel1 , Tel2, Tel3, Tel4
=============================================
Kurt Hectic 12345 NULL NULL NULL
Clark Kent 12345 12345 NULL NULL
Peter Parker 12345 12345 NULL 12345
Customer 和 telnos 表结构
Customer (How I want the result to be stored in new table Customer)
========
Name varchar(25)
Surname varchar(30)
Tel_Home varchar(15)
Tel_Work varchar(15)
Tel_Fax varchar(15)
Cellular varchar(15)
Telnos Customer
====== ========
id Integer(6) Id Integer(6)
Description varchar(10) Name varchar(25)
Number varchar(12) Surname varchar(30)
telno Integer(6) FK of telnos
【问题讨论】:
-
你能告诉我你的表(客户和电话)结构是什么吗??
-
客户姓名 varchar(25)、姓氏 varchar(30)、Tel_Home varchar(15)、Tel_Work varchar(15)、Tel_Fax varchar(15)、蜂窝电话 varchar(15)
-
telnos ID integer(6), Description varchar(10), Number varchar(12)
-
表名在哪里? :)
-
telnos 中的描述是否像 tel1 一样是常量?
标签: mysql row multiple-select