Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql “反向”SQL SELECT-查找在某个日期范围内没有打冷电话的员工_Mysql_Sql_Join - Fatal编程技术网

Mysql “反向”SQL SELECT-查找在某个日期范围内没有打冷电话的员工

Mysql “反向”SQL SELECT-查找在某个日期范围内没有打冷电话的员工,mysql,sql,join,Mysql,Sql,Join,我不确定我做错了什么,但我的脑子有点乱。下面是我的SQL语句,用于选择在某个日期和时间之间打过冷电话的所有员工: 这将列出所有给潜在客户打过电话的员工姓名。但我需要“反转”这个查询,以便在同一日期范围内得到所有没有查询的员工 谢谢你的帮助 使用左连接 使用左连接 使用不存在。类似的方法应该会奏效: SELECT staff.name FROM staff WHERE NOT EXISTS (SELECT * FROM staff_prospects JOIN staff_prospect_a

我不确定我做错了什么,但我的脑子有点乱。下面是我的SQL语句,用于选择在某个日期和时间之间打过冷电话的所有员工:

这将列出所有给潜在客户打过电话的员工姓名。但我需要“反转”这个查询,以便在同一日期范围内得到所有没有查询的员工

谢谢你的帮助

使用左连接

使用左连接


使用不存在。类似的方法应该会奏效:

SELECT staff.name
FROM staff

WHERE NOT EXISTS (SELECT * FROM staff_prospects 
JOIN staff_prospect_activity ON staff_prospect_activity.prospect_id = staff_prospects.id
WHERE staff_prospects.staff_id = staff.id AND
DATE_FORMAT(staff_prospect_activity.date_of_activity, "%Y-%m-%d") BETWEEN "2013-05-31" AND "2013-05-31")

使用不存在。类似的方法应该会奏效:

SELECT staff.name
FROM staff

WHERE NOT EXISTS (SELECT * FROM staff_prospects 
JOIN staff_prospect_activity ON staff_prospect_activity.prospect_id = staff_prospects.id
WHERE staff_prospects.staff_id = staff.id AND
DATE_FORMAT(staff_prospect_activity.date_of_activity, "%Y-%m-%d") BETWEEN "2013-05-31" AND "2013-05-31")
您的日期与2013年5月31日和2013年5月31日相同。除非你只想约会一次。还可以使用左连接并检查空值


您的日期与2013年5月31日和2013年5月31日相同。除非你只想约会一次。还可以使用左连接并检查空值。

日期是否可以代替日期格式?日期是否可以代替日期格式?这似乎不会产生所需的结果。它只返回那些根本没有前途的员工的名字。员工可能有很多潜在客户或没有,也可能有很多潜在客户活动或没有,我只想返回今天没有任何潜在客户活动的员工的姓名。谢谢,但现在我得到0行。我肯定有一些员工在这个日期范围内没有打过冷电话。你能提供样品记录吗?我刚刚用我自己的一组记录测试了这一点,它可以工作。如果数据不正常,并且staff_prospect表的id列可以为NULL,那么这可能不起作用。请尝试将c.id设置为NULL而不是b.id。这似乎无法产生所需的结果。它只返回那些根本没有前途的员工的名字。员工可能有很多潜在客户或没有,也可能有很多潜在客户活动或没有,我只想返回今天没有任何潜在客户活动的员工的姓名。谢谢,但现在我得到0行。我肯定有一些员工在这个日期范围内没有打过冷电话。你能提供样品记录吗?我刚刚用我自己的一组记录测试了这一点,它可以工作。如果数据不正常,并且staff_prospect表的id列可以为NULL,那么这可能不起作用。请尝试将c.id设置为NULL而不是b.id
SELECT staff.name
FROM staff

WHERE NOT EXISTS (SELECT * FROM staff_prospects 
JOIN staff_prospect_activity ON staff_prospect_activity.prospect_id = staff_prospects.id
WHERE staff_prospects.staff_id = staff.id AND
DATE_FORMAT(staff_prospect_activity.date_of_activity, "%Y-%m-%d") BETWEEN "2013-05-31" AND "2013-05-31")
SELECT staff.name
FROM staff

INNER JOIN staff_prospects 
ON staff_prospects.staff_id = staff.id
LEFT JOIN staff_prospect_activity 
ON staff_prospect_activity.prospect_id = staff_prospects.id

WHERE DATE_FORMAT(staff_prospect_activity.date_of_activity, "%Y-%m-%d") BETWEEN "2013-    05-01" AND "2013-05-31" AND STAFF_PROSPECT_ACTIVITY.prospect_id IS NULL

GROUP BY staff.name