选择一个表中的所有列,另一个列中的列等于变量

时间:2015-07-02 15:59:51

标签: sql sql-server

很抱歉这个长标题。

我有一个声明需要从BinConfig中获取一行中的所有列:

SELECT * 
FROM BinConfig WITH(NOLOCK) 
WHERE IssuerKey = @IssuerKey

但我还需要根据CardRangeGroup列从IssuerKey的一行中抓取一列。

我尝试了什么:

SELECT 
    BinConfig.*, CardRangeGroup.Name 
FROM 
    BinConfig 
JOIN 
    CardRangeGroup WITH(NOLOCK) 
WHERE 
    @IssuerKey = BinConfig.IssuerKey 
    AND @IssuerKey = CardRangeGroup.IssuerKey

这给了我WHERE附近的语法错误。我试图在线查找资源,但我看到的任何地方都找不到任何解释如何根据传入的变量选择行的内容。有什么帮助吗?

2 个答案:

答案 0 :(得分:3)

您需要指定表格的连接方式。试试这个:

SELECT BinConfig.*, CardRangeGroup.Name 
FROM BinConfig 
JOIN CardRangeGroup ON BinConfig.IssuerKey = CardRangeGroup.IssuerKey
WHERE @IssuerKey = CardRangeGroup.IssuerKey

可能不需要with(nolock)(或者好主意),所以我将其删除了。

答案 1 :(得分:1)

试试这个,您不需要使用where

 SELECT BinConfig.*, CardRangeGroup.Name FROM BinConfig JOIN   
 CardRangeGroup
 ON CardRangeGroup.IssuerKey = BinConfig.IssuerKey AND @IssuerKey = CardRangeGroup.IssuerKey