MSSQL查询不返回空列/结果

时间:2017-07-05 12:35:07

标签: c# sql sql-server inner-join

我对SQL查询有点新意,所以这可能很容易修复,但我似乎找不到任何答案。

我有一堆相关的表格。例如。 SPClients包含iClientID和sName,SPDocTypes包含iDocTypeID和sName,SPCreditor包含iCreditorID和sName

然后

SPDocIndex包含iIndexID,然后是上面列出的iClientID,iDocTypeID和iCreditorID的外键。

如果我做了一个简单的SELECT * FROM SPDocIndex我得到了所有结果,只显示了ID,这在绑定到数据网格时没什么用处。所以我使用内连接,因此显示的是实际名称,而不仅仅是它们的ID,如下所示:

SELECT * FROM SPDocIndex
INNER JOIN SPClients ON SPDocIndex.iClientID=SPClients.iClientID
INNER JOIN SPDocType ON SPDocIndex.iDocTypeID=SPDocType.iDocTypeID
INNER JOIN SPCreditor ON SPDocIndex.iCreditorID=SPCreditor.iCreditorID

查询“有效”但它只返回在所有三列中都有数据的行。如果SPDocIndex的iCreditorID列为null,则不返回该行...但我希望返回所有行,而不管列是否为空。

2 个答案:

答案 0 :(得分:1)

Benny - 其他一些人在评论中回复说,您需要将您的加入调整为加入,而不是内部加入;的确,这就是这种情况。请查看此链接,以获得有关SQL连接之间差异的快速教程 https://www.w3schools.com/sql/sql_join.asp

答案 1 :(得分:0)

const f = e => e.preventDefault()
document.addEventListener('click', f, false)