我试图找到在酒吧营业时间内发生的所有账单。示例:
|bills table | |bars table |
|billID |time |name | |barName | barOpHr | barClHr|
|1 |22:00 |bar1 | |bar1 | 20:00 | 03:00 |
|2 |15:00 |bar2 | |bar2 | 19:00 | 02:00 |
|3 |23:35 |bar3 | |bar3 | 22:00 | 03:00 |
试图实现:
|bills table |
|billID |time |name |
|1 |22:00 |bar1 |
|3 |23:35 |bar3 |
我的代码如下:
select distinct b.billID from bills as b
inner join bars as s where s.name = b.bar
and time_to_sec(time(b.time)) - time_to_sec(time(s.closing)) > '0'
and time_to_sec(time(b.time)) - time_to_sec(time(s.opening)) > '0'
它没有返回正确的行数,有人可以告诉我我的错误是什么吗?谢谢。
答案 0 :(得分:0)
尝试以下方法:
select distinct b.billID, b.time, b.name
from bills as b inner join bars as s on s.name = b.barName
where (
time_to_sec(time(b.time)) - time_to_sec(time(s.barOpHr)) > '0'
and time_to_sec(time(b.time)) - time_to_sec(time(s.barClHr)) > '0'
)
请考虑使用JOIN
。另外,建议您在ID
表中使用bars
作为主键,而不要使用名称。