Sql 使用联接返回多个查找字段
我的表格合同如下所示: 这里的Sql 使用联接返回多个查找字段,sql,sql-server,Sql,Sql Server,我的表格合同如下所示: 这里的项目id是一个主键,在合同属性上用作外键: 我想返回两列,一列是合同(0000000903),字段_id=238和字段_id=326(N,N)的属性值各一列 这就是我到目前为止所做的: SELECT distinct [CONTRACT].item_name, [CONTRACT_ATTR].ATTR_VAL FROM [dbo].[CONTRACT] JOIN [CONTRACT_ATTR] ON [CONTRACT].item_name = [CONTRA
项目id
是一个主键,在合同属性上用作外键:
我想返回两列,一列是合同(0000000903),字段_id=238和字段_id=326(N,N)的属性值各一列
这就是我到目前为止所做的:
SELECT distinct [CONTRACT].item_name, [CONTRACT_ATTR].ATTR_VAL
FROM [dbo].[CONTRACT]
JOIN [CONTRACT_ATTR]
ON [CONTRACT].item_name = [CONTRACT_ATTR].ATTR_VAL AND [CONTRACT_ATTR].item_id = 17
这17个国家在实践中将是动态的。但有了这个问题,我两次得到了合同:
编辑:如果我在(238326)
中添加和[CONTRACT\u ATTR].field\u id,我什么也得不到
我做错了什么?如何修复它?您能更改ON
子句中的字段吗
SELECT DISTINCT CO.item_name, CA.ATTR_VAL
FROM [dbo].[CONTRACT] CO
JOIN [CONTRACT_ATTR] CA ON CA.Item_Id = CO.Item_Id
WHERE CA.Item_Id = 17 AND CA.field_id in (238, 326)
在ON
子句中,您使用了项目名称
和属性值
进行匹配。它返回错误的结果