我这里有一张 2 名员工时间表的表格。我将如何检索具有从 星期一 到 星期日 并从 2016-08-15 到 的完整时间表的某个员工的行strong>2016-08-21
| id | emp_id | date | day |
|----|--------|------------|-----|
| 1 | emp1 | 2016-08-17 | Wed |
| 2 | emp1 | 2016-08-18 | Thu |
| 3 | emp1 | 2016-08-19 | Fri |
| 4 | emp1 | 2016-08-20 | Sat |
| 5 | emp1 | 2016-08-21 | Sun |
| 6 | emp2 | 2016-08-15 | Mon |
| 7 | emp2 | 2016-08-16 | Tue |
| 8 | emp2 | 2016-08-17 | Wed |
| 9 | emp2 | 2016-08-18 | Thu |
| 10 | emp2 | 2016-08-19 | Fri |
| 11 | emp2 | 2016-08-20 | Sat |
| 12 | emp2 | 2016-08-21 | Sun |
所以基本上它应该只检索 emp 2 的条目。输出应该是这样的
| 6 | emp2 | 2016-08-15 | Mon |
| 7 | emp2 | 2016-08-16 | Tue |
| 8 | emp2 | 2016-08-17 | Wed |
| 9 | emp2 | 2016-08-18 | Thu |
| 10 | emp2 | 2016-08-19 | Fri |
| 11 | emp2 | 2016-08-20 | Sat |
| 12 | emp2 | 2016-08-21 | Sun |
但是如果 emp1 有星期一和星期二的安排,它也应该被检索。
已更新
实际上,我在 codeigniter 中应用了它,在答案的帮助下,我设法将其转换为 codeigniter 事件记录语法,这就是我的代码的样子:
$schedule = $this->db->query("SELECT *
FROM schedule
LEFT JOIN employees
ON employees.user_id = schedule.user_id;
WHERE schedule.user_id IN (SELECT user_id
FROM schedule
WHERE start >= '2016-08-15' and start <= '2016-08-21'
group by user_id
having count(*) = 7
); ");
if($schedule->num_rows() > 0) {
return $schedule->result_array();
} else {
return false;
}
顺便说一句,我还有另一个表需要与日程表连接。但这似乎是一种不正确的方式,因为我得到了一个错误。我该如何解决?
最佳答案
从 2016-08-15 到 2016-08-21 的完整时间表意味着有 7 天的安排。因此,您可以检查在此时间范围内安排的天数,并确保有七个(不同的)天数:
SELECT *
FROM schedule
WHERE `date` >= '2016-08-15' AND
`date` <= '2016-08-21' AND
emp_id IN (SELECT emp_id
FROM schedule
WHERE `date` >= '2016-08-15' AND `date` <= '2016-08-21'
GROUP BY emp_id
HAVING COUNT(DISTINCT `date) = 7)
关于mysql - 如果满足所有条件,SQL 获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39053633/
我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123
我希望我的UserPrice模型的属性在它们为空或不验证数值时默认为0。这些属性是tax_rate、shipping_cost和price。classCreateUserPrices8,:scale=>2t.decimal:tax_rate,:precision=>8,:scale=>2t.decimal:shipping_cost,:precision=>8,:scale=>2endendend起初,我将所有3列的:default=>0放在表格中,但我不想要这样,因为它已经填充了字段,我想使用占位符。这是我的UserPrice模型:classUserPrice回答before_val
如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象
当我的预订模型通过rake任务在状态机上转换时,我试图找出如何跳过对ActiveRecord对象的特定实例的验证。我想在reservation.close时跳过所有验证!叫做。希望调用reservation.close!(:validate=>false)之类的东西。仅供引用,我们正在使用https://github.com/pluginaweek/state_machine用于状态机。这是我的预订模型的示例。classReservation["requested","negotiating","approved"])}state_machine:initial=>'requested
我有一个这样的哈希数组:[{:foo=>2,:date=>Sat,01Sep2014},{:foo2=>2,:date=>Sat,02Sep2014},{:foo3=>3,:date=>Sat,01Sep2014},{:foo4=>4,:date=>Sat,03Sep2014},{:foo5=>5,:date=>Sat,02Sep2014}]如果:date相同,我想合并哈希值。我对上面数组的期望是:[{:foo=>2,:foo3=>3,:date=>Sat,01Sep2014},{:foo2=>2,:foo5=>5:date=>Sat,02Sep2014},{:foo4=>4,:dat
我有这个html标记:我想得到这个:我如何使用Nokogiri做到这一点? 最佳答案 require'nokogiri'doc=Nokogiri::HTML('')您可以通过xpath删除所有属性:doc.xpath('//@*').remove或者,如果您需要做一些更复杂的事情,有时使用以下方法遍历所有元素会更容易:doc.traversedo|node|node.keys.eachdo|attribute|node.deleteattributeendend 关于ruby-Nokog
我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden
有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url
我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin
我有一个只接受一个参数的方法:defmy_method(number)end如果使用number调用方法,我该如何引发错误??通常,我如何定义方法参数的条件?比如我想在调用的时候报错:my_method(1) 最佳答案 您可以添加guard在函数的开头,如果参数无效则引发异常。例如:defmy_method(number)failArgumentError,"Inputshouldbegreaterthanorequalto2"ifnumbereputse.messageend#=>Inputshouldbegreaterthano