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)