小编Cra*_*aig的帖子

消除满足条件的用户,即使他们可能不满足其他行中的条件

我有一个查询(其中包括)寻找可以在某一天进行轮班的人.

SELECT secud_id, secud_fname, secud_sname, user_id, user_owner, user_level, shift_start, GROUP_CONCAT(DISTINCT uq_name SEPARATOR ' ') quals 
FROM user_data 
INNER JOIN users ON user_data.secud_ulink = users.user_id 
LEFT JOIN user_quals ON users.user_id = user_quals.uq_user 
LEFT JOIN shifts ON shifts.shift_user = users.user_id 
WHERE users.user_owner = 2 
AND users.user_level= 'Personnel' 
AND (date(shifts.shift_start) <> '2016-03-16' OR date(shifts.shift_start) IS NULL) 
AND users.user_active = 1 
GROUP BY users.user_id 
ORDER BY secud_sname ASC
Run Code Online (Sandbox Code Playgroud)

为了解释结构,用户是用户主表,user_quals持有各种证书等(对于该用户可能是空的,或者有许多条目),user_data为用户保存各种信息并且轮班保存班次日期和时间,地点等(也可能有很多或没有).

我主要得到的是我想要的东西 - 具有属于特定组织(user_owner)的资格的活跃用户列表,其user_level为Personnel,在该日期没有转移,但是如果他们是发现在另一个日期有转变当然符合WHERE条款.如果他们在那个日期有转变,即使它们可能在其他行中返回,我也不希望它们出现.

任何指导都非常感谢.

mysql

1
推荐指数
1
解决办法
58
查看次数

标签 统计

mysql ×1