mysql - WHERE记录在另一个表中没有记录

时间:2018-03-09 11:38:51

标签: mysql

我有一些表,我需要从中获取数据 这是我的结构:

员工

PermissionRule

报告

requestPermissions()

| id |   name  |
+----+---------+
|  1 | Michael |
|  2 |  Sarah  |

现在我需要使用| id | employee_id | month | year | value | group_id | +----+-------------+-------+------+-------+----------+ | 1 | 1 | 01 | 2018 | 35 | 1 | | 2 | 1 | 02 | 2018 | 12 | 1 | | 3 | 2 | 02 | 2018 | 2 | 2 | | id | name | employee_id | +----+------+-------------+ | 1 | G11 | 1 | | 2 | Z15 | 2 | 获取groups没有报告,例如。 当我查找employee时,它应仅返回WHERE employee with group_id AND month AND year,但当我查找01.2018时,它应该返回Z1504.2018。 我怎样才能做到这一点?此刻我有这样的事情:

Z15

1 个答案:

答案 0 :(得分:1)

我的专栏名称与您的名称略有不同。这是故意的......

SELECT g.* 
  FROM groups g 
  LEFT 
  JOIN reports r 
    ON r.group_id = g.group_id 
   AND r.yearmonth = 201801 
 WHERE r.report_id IS NULL;