好的,这就是我的情况。
我正在使用Microsoft SQL Server Management Studio我目前有一个查询可以提取个人的许可证号码,地址,名字,姓氏和ID。我需要添加以完成此操作是添加电话号码。我刚刚进入这个环境,我不完全确定哪些表包含哪些数据。有近5000张桌子,我根本没时间通过它们。
如何查看两个表之间是否存在任何关系?
我尝试where f.phn_int_id = a.psn_int_id
,但这不起作用,因为表1中的人员ID与表2中的电话ID不匹配。
我还应该提一下,包含电话号码的表格仅包含phn_int_id
,phn_ara_cd
,phn_exc_no
和phn_lcl_no
。包含人名的表包含prsn_int_id
,fst_nm
,mid_nm
和lst_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 =我们的人名表。
**请注意,这是我的第一个问题,所以我可能会错过一些重要的信息。
修改 我搜索到的任何地方都无法帮助我解决我的问题。
编辑2 这是查询,表格的名称已更改为第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`
如果我保留这样的代码,我将获得phn_int_id = 1的电话号码,以便将自己绑定到car_gvr_int_id = 1等等。问题是,当我这样做时,我会得到一条线路,来自佛罗里达州的人将拥有本地号码,而拥有本地号码的人将拥有州外号码。
答案 0 :(得分:0)
有很多方法可以列出表中的列:
示例强>
Select * FROM INFORMATION_SCHEMA.COLUMNS
2-使用系统表sys.columns和sys.Tables以及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'
列出列时,更容易处理您的情况