表示具有返回多行的子查询的SQL

Car*_*ven 2 mysql sql

我想用以下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来实现这一目标?

Joe*_*lli 5

在这种情况下,不需要子查询.只是:

SELECT *
    FROM orders
    WHERE email = 'me@example.com'
        AND DATEDIFF(NOW(), datepurchased) <= 1;
Run Code Online (Sandbox Code Playgroud)