MySQL 中的多选 SQL 有什么问题:
select *
from license
where license.expirydate between (
(select monthrange.monthstart from monthrange where id = 1)
and
(select monthrange.monthend from monthrange where id = 1)
)
最佳答案
这是您的查询:
select *
from license
where license.expirydate between ((select monthrange.monthstart from monthrange where id = 1) and
(select monthrange.monthend from monthrange where id = 1)
)
Between
的参数不应位于括号中。试试这个:
select *
from license
where license.expirydate between (select monthrange.monthstart from monthrange where id = 1) and
(select monthrange.monthend from monthrange where id = 1)
当然,您也可以将其表示为连接
。这个答案只是为了评论语法错误:
select l.*
from license l join
monthrange m
on l.expirydate between m.monthstart and m.monthend and
m.id = 1;
关于mysql - 在 BETWEEN 子句中使用 SQL 子查询获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24127571/