我有两个数据表,一个是:
“cards”表包含:
id Department
0000022288 COR
0000043880 NA
0000031643 NA
0000013870 TRAN
0000053900 COR
0000055452 IOR
0000010957 IOR
0000025746 BILL
0000061783 BILL
0000000773 NA
我有另一张桌子(valid_entry):
date emp_id emp_time
20130101 0000002001 101825
20130102 0000002001 085024
20130103 0000002001 085657
20130106 0000002001 095145
20130107 0000002001 090724
20130108 0000002001 091244
我想显示那些不在有效表中的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 = ''
如果我能得到类似的东西,那就太好了。
date emp_id emp_time card_id_missing
20130101 0000002001 101825
20130102 0000002001
20130103 0000002001 085657
20130106 0000002001 095145
20130107 0000002001 090724
20130108 0000002001 091244
我想要这样的东西
答案 0 :(得分:1)
尝试此查询
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,但不在valid_entry
拉吉
答案 1 :(得分:0)
像
这样的东西SELECT * FROM cards WHERE id NOT IN (SELECT emp_id FROM valid entry)