需要将 phone 数字添加到 SQL 查询以添加到一个人的姓名和地址

Need to add a phone number to a SQL query to add to a person's name and address

好的,这就是我的情况。

我正在使用 Microsoft SQL Server Management Studio 我目前有一个查询可以提取一个人的许可证号、地址、名字、姓氏和 ID。要完成此操作,我需要添加的只是添加 phone 号码。我最近才进入这个环境,我不完全确定什么 table 包含什么数据。几乎有 5000 个 table,我根本没有时间去浏览它们。 如何查看两个 table 之间是否存在任何关系? 我尝试执行 where f.phn_int_id = a.psn_int_id,但这不起作用,因为来自 table 1 的人 ID 与来自 table 2.

的 phone ID 不匹配

我还应该提到,带有 phone 个数字的 table 仅包含 phn_int_idphn_ara_cdphn_exc_nophn_lcl_no。人名table包含prsn_int_idfst_nmmid_nmlst_nm.

我正在从一个函数中提取一个单独的地址,它是 person_address_line = dbo.fn_get_ent_pri_adr (b.psn_int_id, 'L'), person_address_csz = dbo.fn_get_ent_pri_adr (b.psn_int_id, 'C')

*注意 b = 我们的人名 table.

**请注意,这是我的第一个问题,所以我可能会错过一些重要信息。

编辑 我搜索过的所有地方都无法帮助我解决问题。

编辑 2 这是查询,table 的名称更改为 第 1 列、第 2 列 等.

`SELECT a.car_gvr_ext_id, b.lst_nm, b.fst_nm, c.car_gvr_lic_no, e.cod_dtl_ds, concat(f.phn_ara_cd, f.phn_exc_no, f.phn_lcl_no) AS phn_no, person_address_line = dbo.fn_get_ent_pri_adr (b.psn_int_id, 'L'), person_address_csz = dbo.fn_get_ent_pri_adr (b.psn_int_id, 'C')
  FROM column1 a, column2 b, column3 c, column4 d, column5 e, column6 f
  WHERE a.psn_int_id = b.psn_int_id
  AND a.car_gvr_int_id = c.car_gvr_int_id
  AND a.car_gvr_int_id = d.car_gvr_int_id
  AND d.func_int_id = e.cod_dtl_int_id
  AND f.phn_int_id = a.car_gvr_int_id` 

如果我保留这样的代码,我将得到 phone 编号 phn_int_id = 1 以将其自身绑定到 car_gvr_int_id = 1 等等。问题是,当我这样做时,我会收到一条线路,其中来自佛罗里达州的人将拥有本地号码,而拥有本地号码的人将拥有州外号码。

有很多方法可以列出表中的列:

1- 使用 Information Schema Views

例子

Select * FROM INFORMATION_SCHEMA.COLUMNS

2- 使用系统表 sys.columns And sys.Tables And sys.schemas

示例:

SELECT cols.name as column_name, tbls.name as Table_name,schm.name as schema_name  FROM sys.columns  AS cols INNER JOIN sys.tables  AS tbls
ON cols.object_id = tbls.object_id INNER JOIN sys.schemas as schm ON tbls.schema_id = schm.schema_id
WHERE tbls.type = 'U'

列出列时更容易处理您的情况