Sql server 显示MSSQL表中缺少的行

Sql server 显示MSSQL表中缺少的行,sql-server,Sql Server,我有两个数据表一是: “卡片”表,其中包含: id Department 0000022288 COR 0000043880 NA 0000031643 NA 0000013870 TRAN 0000053900 COR

我有两个数据表一是:

“卡片”表,其中包含:

   id                           Department
0000022288                      COR 
0000043880                      NA  
0000031643                      NA  
0000013870                      TRAN
0000053900                      COR 
0000055452                      IOR 
0000010957                      IOR 
0000025746                      BILL
0000061783                      BILL
0000000773                      NA  
我有另一个表(有效的\u条目):

我想显示那些不在有效表中的id

我的问题是:

SELECT  emp_valid_date
    ,   emp_valid_name
    ,   emp_valid_time
    ,   emp_valid_dept
    ,   Name
FROM valid_entry
INNER JOIN Cards ON emp_valid_dept = Depart_Code
WHERE emp_valid_date = '$date'
    AND emp_valid_time >= 060000
    AND emp_valid_time <= 230000
    AND emp_valid_dept != 'DRI' OR emp_valid_time = ''
我想要这样的东西

试试这个查询

    SELECT ID from Cards C
    LEFT OUTER JOIN valid_entry VE
    ON C.ID = VE.emp_id
    WHERE VE.emp_id IS NULL
如果需要显示所有行,请删除
WHERE
子句。它将返回所有行,但对于卡中的行,则返回NULL,但对于无效的\u条目,则返回NULL

拉杰

类似

SELECT * FROM cards WHERE id NOT IN (SELECT emp_id FROM valid entry)

请添加缺少的列,并在您的
有效\u条目
表中重命名示例中的现有列,以匹配您的查询。抱歉,没有用。我想要来自有效的\u条目的数据,还想要包括来自卡片的行,这些行不存在于有效的\u条目表中。啊,好的。那么带有外部联接的Raj解决方案就是正确的解决方案。我已经尝试过了,但它返回的行在有效的\u条目中不存在。我想要有效的输入+卡片(存在+不存在)。在这种情况下,请删除我查询中的
WHERE
子句。它将返回所有的行,但对于卡中的行为NULL,但在有效的\u条目中无效。您认为它将返回有效的\u条目的数据吗?我也尝试过,但它返回的是有效的\u条目中不存在的行。我想要有效的条目+卡片(已存在+不存在)是的,它正在显示结果,但只显示卡片表中的结果,但它没有显示有效条目中的数据包括您想在
选择
列表中看到的所有列请检查我的上次更新我想要的内容。只想添加一个新列,该列包含有效的\u条目中缺少的卡片表。希望你能理解。
    SELECT ID from Cards C
    LEFT OUTER JOIN valid_entry VE
    ON C.ID = VE.emp_id
    WHERE VE.emp_id IS NULL
SELECT * FROM cards WHERE id NOT IN (SELECT emp_id FROM valid entry)