Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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_Sql Server 2008 - Fatal编程技术网

返回匹配和不匹配记录的SQL联接查询

返回匹配和不匹配记录的SQL联接查询,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在使用SQL语法编写联接查询。 我无法获得预期的输出,请专家帮助我 Table: Table1 ScriptNumber Date Filled RefillsLeft 100 01/02/2014 1 200 01/03/2014 0 300 01/22/2014 3 Table : Table 2 ScriptNumber Date Filled

我正在使用SQL语法编写联接查询。 我无法获得预期的输出,请专家帮助我

Table: Table1

ScriptNumber    Date Filled    RefillsLeft
100               01/02/2014      1
200               01/03/2014      0
300               01/22/2014      3


Table : Table 2 

ScriptNumber    Date Filled    RefillsLeft
100               02/02/2014      0

Expected output

ScriptNumber    Date Filled    RefillsLeft
100               02/02/2014      0
300               null            null
SQL语句

SELECT Table_2.ScriptNumber
       ,Table_2.DateFilled
       ,Table_2.RefillsLeft
    FROM Table_1
    LEFT JOIN Table_2
        ON Table_1.ScriptNumber = Table_2.ScriptNumber

在这里,左连接可能有助于获取表_1中所需的记录以及表_2中可能存在的任何相关详细信息

select Table_1.ScriptNumber
    , Table_2.DateFilled
    , Table_2.RefillsLeft
from Table_1
    left join Table_2 on Table_1.ScriptNumber = Table_2.ScriptNumber
where Table_1.RefillsLeft > 0

这样的描述对您的问题也很有帮助。

您的问题来自于在表2中的SELECT语句中包含列,这些列没有表1中存在的行的值。您需要将SELECT Table_2.ScriptNumber更改为SELECT Table_1.ScriptNumber


作为将来的参考,请确保始终从左表中选择所有相关列,并且只从右表中选择所需的列。否则,将得到更少的空行,而不是左表中的数据

你的问题是什么?到目前为止你试过什么?你能用语言解释你的预期结果吗?我不清楚您想要实现什么。@goofyui这不是问题。@goofyui添加SQL代码为什么您不希望结果中出现200。若执行左联接,它将从左表中获取所有行,并且只从右表中获取匹配的行。你也可以把你现在得到的作为输出添加进去。它会返回预期的记录。非常感谢。以防万一,如果我想查看只有空值的记录。我应该如何调整我的查询。不使用where条件等于null