Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 子查询返回多行的SQL语句_Mysql_Sql - Fatal编程技术网

Mysql 子查询返回多行的SQL语句

Mysql 子查询返回多行的SQL语句,mysql,sql,Mysql,Sql,我尝试使用以下SQL从mySQL查询一组数据: SELECT * FROM orders WHERE datediff((now()), (SELECT datepurchased FROM orders WHERE email = 'me@example.com')) <= 1 但问题是,我得到了一个错误,1242-Subquery返回了不止一行,因为语句selectdatepurchasefromrorders,其中email='1〕me@example.com'返回多行,这是完全

我尝试使用以下SQL从mySQL查询一组数据:

SELECT * FROM orders 
WHERE datediff((now()), (SELECT datepurchased FROM orders WHERE email = 'me@example.com')) <= 1
但问题是,我得到了一个错误,1242-Subquery返回了不止一行,因为语句selectdatepurchasefromrorders,其中email='1〕me@example.com'返回多行,这是完全正确的


我想要的想法是从orders表中进行选择,以便当前时间和datepurchased字段之间的日期差您不需要子查询,只需在orders查询中输入两个where条件即可


我没有试过,但它似乎很简单。

我想您只需要一个普通的SELECT,它带有一个WHERE子句,其中包含两个条件:

SELECT * FROM orders 
WHERE email = 'me@example.com')
AND datediff(now(), datepurchased) <= 1

在这种情况下不需要子查询。简单地说:

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

我想我遗漏了什么,但你为什么不能这样做呢

SELECT * FROM orders 
WHERE datediff(now(), datepurchased ) <= 1
and email = 'me@example.com'
你怎么了

SELECT * 
    FROM orders
    WHERE datediff(now(), datepurchased) <= 1
      AND email = 'me@example.com'

有人请告诉我,为什么当柯克比的答案与当前的其他4个答案完全相同时,他们的答案被否决,而他们被否决了?@Joe Stefanelli-可能只是想确保我没有遗漏什么。我不喜欢无缘无故地投反对票,它把建设性批评的机会变成了近乎无用的东西。对于一个应该是关于学习和解决问题的网站来说,完全是适得其反的。。。。。不一定按那个顺序。@布赖恩:你在向唱诗班布道-
SELECT * 
    FROM orders
    WHERE datediff(now(), datepurchased) <= 1
      AND email = 'me@example.com'