很抱歉这个长标题。
我有一个声明需要从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
附近的语法错误。我试图在线查找资源,但我看到的任何地方都找不到任何解释如何根据传入的变量选择行的内容。有什么帮助吗?
答案 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