Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用联接返回多个查找字段_Sql_Sql Server - Fatal编程技术网

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
子句中,您使用了
项目名称
属性值
进行匹配。它返回错误的结果