所以我有两张桌子。
我想选择员工中存在但在emp_attend中不存在的所有数据。我可以使用此查询执行此操作:
String selectQuery = "SELECT \n" +
"employees.emp_id, employees.first_name, employees.last_name \n" +
"FROM employees \n" +
"LEFT JOIN emp_attend ON emp_attend.emp_id = employees.emp_id \n" +
"WHERE emp_attend.emp_id IS NULL";
现在,如何在emp_attend表中给出特定日期的情况下,它只选择employee表中不存在的数据
String selectQuery = "SELECT \n" +
"employees.emp_id, employees.first_name, employees.last_name \n" +
"FROM employees \n" +
"LEFT JOIN emp_attend ON emp_attend.emp_id = employees.emp_id \n" +
"WHERE emp_attend.emp_id IS NULL OR emp_attend.date != ?";
我尝试了上述查询,但它显示了所有员工。
例如 对于1/5/2018,它显示了尚未在emp_attend表中列出的所有员工。
希望你能帮助我。
答案 0 :(得分:1)
您需要在emp_attend.date
而不是LEFT JOIN
子句中移动WHERE
cocndition。
SELECT
employees.emp_id
, employees.first_name
, employees.last_name
FROM employees
LEFT JOIN emp_attend
ON emp_attend.emp_id = employees.emp_id
AND emp_attend.date = ?
WHERE emp_attend.emp_id IS NULL;
答案 1 :(得分:0)
select * from employees emp
outer join emp_attend attend
on emp.emp_id = attend.emp_id