2012-10-30 46 views
0

我希望下面的错误是不言自明的。我想比较一下event_time与几个cart_time。我知道,通常当我们需要这样的任何操作时,我们需要使用in,但是对于时间戳如何比较它mysql查询时间戳错误

mysql> SELECT bsid 
     FROM access_aug15 
     WHERE event_time < (SELECT cart_time 
          FROM chat_final 
          WHERE bsid in (SELECT bsid 
              FROM access_aug15 
              WHERE eventid="11" 
              AND current_page not like '%cart%')); 

ERROR 1242 (21000): Subquery returns more than 1 row 

编辑:表结构access_aug15

+-------------------+--------------+------+-----+---------+-------+ 
    | Field    | Type   | Null | Key | Default | Extra | 
    +-------------------+--------------+------+-----+---------+-------+ 
    | vid    | varchar(200) | YES |  | NULL |  | 
    | bsid    | varchar(200) | YES | MUL | NULL |  | 
    | event_time  | datetime  | YES | MUL | NULL |  | 
    | eventid   | varchar(10) | YES | MUL | NULL |  | 
    | current_page  | mediumtext | YES |  | NULL |  | 
    | departmentid  | varchar(100) | YES | MUL | NULL |  | 
    | form_id   | varchar(100) | YES |  | NULL |  | 
    | form_name   | varchar(100) | YES |  | NULL |  | 
    | page_title  | varchar(200) | YES |  | NULL |  | 
    | report_date  | datetime  | YES | MUL | NULL |  | 
    +-------------------+--------------+------+-----+---------+-------+ 

表2:chat_final

+-------------------+--------------+------+-----+---------+-------+ 
    | Field    | Type   | Null | Key | Default | Extra | 
    +-------------------+--------------+------+-----+---------+-------+ 
    | bsid    | varchar(200) | YES | MUL | NULL |  | 
    | chat_time   | datetime  | YES |  | NULL |  | 
    | cart_time   | datetime  | YES |  | NULL |  | 
    | customerid  | varchar(100) | YES |  | NULL |  | 
    | detail   | longtext  | YES |  | NULL |  | 
    | chat_type   | varchar(5) | YES |  | NULL |  | 
    +-------------------+--------------+------+-----+---------+-------+ 

回答

0

在您的查询子查询(另一个查询内查询)应该只返回一个结果..但它返回多个行。你需要修改你的子查询。请提供表结构和一些数据...然后我会给你正确的查询

+0

是的,我已经给出了表结构 – Rajeev

+0

@Rajeev - 我认为你需要添加一个条件与“选择”选择cart_time从chat_final“ –

+0

可以ü请告诉我该怎么做我完全 – Rajeev

0
select bsid from access_aug15 where event_time <(select cart_time from chat_final 
where bsid in (select bsid from access_aug15 
where eventid="11" and current_page not like '%cart%' 
LIMIT 1) 
LIMIT 1); 
+0

,但我不希望内部使用限制子查询 – Rajeev