Sql server 根据每个列表中的表id选择字段名称

Sql server 根据每个列表中的表id选择字段名称,sql-server,Sql Server,我有个问题。 我想在我的查询“选择…”中显示字段名称。。从…起where’子句 在我的日志记录表中,该表仅保留[日期]、[表id]、[字段id]。。字段,我需要在我的选择中也显示'field\u name',但是没有任何其他表可以根据'select中的[field\u id]来“加入”以获取[field\u name]。。从“”开始。当我从谷歌搜索时,我似乎可以从名为'sys.columns'表的SQL系统中获取字段名。但这对于我的SQL级别来说太复杂了,因为这个sys.coloums不是直接的

我有个问题。 我想在我的查询“选择…”中显示字段名称。。从…起where’子句

在我的日志记录表中,该表仅保留
[日期]、[表id]、[字段id]
。。字段,我需要在我的选择中也显示
'field\u name'
,但是没有任何其他表可以根据
'select中的
[field\u id]
来“加入”以获取
[field\u name]
。。从“
”开始。当我从谷歌搜索时,我似乎可以从名为
'sys.columns'
表的SQL系统中获取字段名。但这对于我的SQL级别来说太复杂了,因为这个sys.coloums不是直接的。它在所有字段编号取决于表id本身之前混合了所有表

任何知道如何编写一个好的查询来选择字段名称的人(请帮助:)

日志列表表 [日期],[表格id],[字段id],[公司名称],…

我当前的查询:

SELECT
date , table_id , name as table_name

FROM
log_list join table_name_list on log_list.table_id = table_name_list.table_id
and log_list.company_name like '%something%'

WHERE
date between @startdate and @enddate

感谢您的关注。

您的标签没有说明您使用的SQL Server版本,假设您使用的是2008+系统功能

COL_NAME ( table_id , column_id )  
如果您提供表\ id和列\ id,将获得名称,详细参考请查看此处:

如果该选项对您无效,请仔细查看sys.columns,它返回的object_id实际上是表的object_id,应该是表的object_id,因此如果您执行以下操作,它应该可以工作:

select C.name AS column_name
...
FROM ...
...
join sys.columns C on yourtable.table_id = C.object_id and yourtable.column_id = C.column_id

将来,请使用适当的标记使代码作为代码可见。这次我是为你做的。