我正在研究指纹读取器,其中读取器(本身)为每个人员生成一种“键”。我将这些密钥存储在表EmpInfo_Device
中的每个已知雇员中,并分为两列:
DevKey
(这是FP阅读器生成的密钥)Emp_id
(这是另一个表EmpInfo
中为其生成密钥的特定员工的外键)(例如,设备为员工“ Jack”生成了ID为(120)的密钥(40))。有时有些人不是员工,但仍在使用该设备,因此会为他们生成密钥。问题是我想从另一个表LogData_Stage1
获取所有日志条目,该表主要由几列组成:
现在,我只希望LogData_Stage1
中来自EmpInfo_Device
的所有日志条目用于存储的员工。
我已经尝试过该查询,但是我觉得这是错误的。
Select *
From EmpInfo_Device e
Where e.DevKey in (Select lg.DevKey from LogData_Stage1 lg)
此查询返回EmpInfo_Device
中的所有值-但是,LogData_Stage1
中不同ID的数量恰好是86,所以我有点困惑。
在此先感谢您,如果问题过长,我们感到抱歉
答案 0 :(得分:1)
如果我理解此权利,则需要所有为员工(而不是为阅读器的其他非员工用户使用的日志)创建的所有日志条目以及员工ID。为此,您可以使用INNER JOIN
。
SELECT ed.emp_id,
l.logdatetime,
l.logtype
FROM logdata_stage1 l
INNER JOIN empinfo_device ed
ON ed.devkey = l.devkey;