这是我的问题
想象一下这张 table
id| idcompany
----------
1 | 1
----------
2 | 2
----------
3 | 1
----------
5 | 1
----------
6 | 2
我用 PHP 编写了这样的代码:
if id <= 2 then DAY1
if id BETWEEN 3,4 then DAY2
if id BETWEEN 5,6 then DAY3
查看该表,我们可以假设公司 1 出现在第 1 天、第 2 天和第 3 天 公司 2 出现 Day1 和 Day3
我想在这里完成的是:如何在 SQL 中选择所有公司 谁不会参加第二天的事件?
我已经尝试过:
SELECT * FROM tickets
WHERE id NOT BETWEEN 3 AND 4
GROUP BY(idcompany)
但很明显这不会起作用,因为查询将从另一天选择 idcompany 并打印结果。
有人可以帮我解决这个问题吗? 提前致谢。
最佳答案
希望我没猜错
http://sqlfiddle.com/#!9/6f9921/1
SELECT idcompany
FROM tickets
GROUP BY idcompany
HAVING SUM(IF(id IN (3,4),1,0))=0
更新如果您需要间隔,可以替换SUM
中的条件:
SELECT idcompany
FROM tickets
GROUP BY idcompany
HAVING SUM(IF(id BETWEEN 330601 AND 40800,1,0))=0
关于php - 搜索未出现在值之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32146732/