如何检查某个ID是否只存在一条记录

How to check if there exist only one record for a certain Id

如何判断某个Id是否只有一条记录

我有两个表,分别是 Tbl_CompanyTbl_Employee 我正在如下获取员工-

SELECT DISTINCT emp.employee_id
FROM Tbl_Company comp
           , Tbl_Employee emp
WHERE 
           emp.company_id = comp.company_id 
           AND emp.company_id = 1234;

此查询returns恰好有一个值。 我如何确保上面的查询 returns 恰好是我输入的任何 comany_id 的一个值。

我尝试使用 This post 中给出的解决方案,但没有成功。 有没有更简单的方法来做到这一点。

这将 return 每个公司一行

SELECT comp.companyid, max(emp.employee_id) lastEmployeeID
FROM Tbl_Company comp
           , Tbl_Employee emp
WHERE 
           emp.company_id = comp.company_id 
           AND emp.company_id = 1234
GROUP BY comp.companyid

我已经通过在评论

中使用@davegreen100的答案解决了这个问题
SELECT comp.companyid, count(distinct emp.employee_id), 
FROM Tbl_Company comp
           , Tbl_Employee emp
WHERE 
           emp.company_id = comp.company_id 
           AND emp.company_id = 1234
GROUP BY comp.companyid

这会给我每家公司的员工人数

下面的查询简单灵活。它将 return 列出公司中所有单独的员工(return 包含完整的员工信息)。

您可以通过启用关于公司的条件来检查定义的公司是否有一个孤独的员工,或者您可以通过启用员工条件来检查员工是否是一个孤独的员工。

SELECT emp.*
FROM Tbl_Company comp
           /*, Tbl_Employee emp*/
WHERE (emp.company_id , 1) in (select t.company_id, count(t.employee_id) from Tbl_Company t )
  --AND emp.company_id = 1111 /*filter conditions on company_id*/
  --AND emp.employee_id = 1234/*filter conditions on employee_id*/;