我想用以下SQL从mySQL查询一组数据:
SELECT * FROM orders
WHERE datediff((now()), (SELECT datepurchased FROM orders WHERE email = 'me@example.com')) <= 1
Run Code Online (Sandbox Code Playgroud)
但问题是我得到错误,#1242 - Subquery returns more than 1 row因为语句SELECT datepurchased FROM orders WHERE email = 'me@example.com'返回多行,这是完全正确的.
我想我们的想法是从选择orders表,使得当前时间和之间的时间差datepurchased场<=1,而且email场等于me@example.com.
orders表格中可能有很多行,其电子邮件字段为me@example.com.我只是想找出所有这些行与email场等于me@example.com具有datepurchased小于或等于1.
我应该如何表达我的SQL来实现这一目标?
在这种情况下,不需要子查询.只是:
SELECT *
FROM orders
WHERE email = 'me@example.com'
AND DATEDIFF(NOW(), datepurchased) <= 1;
Run Code Online (Sandbox Code Playgroud)